Package org.jumpmind.db.alter
Class ModelComparator
java.lang.Object
org.jumpmind.db.alter.ModelComparator
Compares two database models and creates change objects that express how to adapt the first model so that it becomes the second one. Neither of the models
are changed in the process, however, it is also assumed that the models do not change in between.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected boolean
Whether comparison is case sensitive.protected IDdlBuilder
protected DatabaseInfo
The platform information. -
Constructor Summary
ConstructorsConstructorDescriptionModelComparator
(IDdlBuilder ddlBuilder, DatabaseInfo platformInfo, boolean caseSensitive) Creates a new model comparator object. -
Method Summary
Modifier and TypeMethodDescriptionCompares the two models and returns the changes necessary to create the second model from the first one.compareColumns
(Table sourceTable, Column sourceColumn, Table targetTable, Column targetColumn) Compares the two columns and returns the changes necessary to create the second column from the first one.compareTables
(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable) Compares the two tables and returns the changes necessary to create the second table from the first one.
-
Field Details
-
platformInfo
The platform information. -
caseSensitive
protected boolean caseSensitiveWhether comparison is case sensitive. -
ddlBuilder
-
-
Constructor Details
-
ModelComparator
Creates a new model comparator object.- Parameters:
platformInfo
- The platform infocaseSensitive
- Whether comparison is case sensitive
-
-
Method Details
-
compare
Compares the two models and returns the changes necessary to create the second model from the first one.- Parameters:
sourceModel
- The source modeltargetModel
- The target model- Returns:
- The changes
-
compareTables
public List<IModelChange> compareTables(Database sourceModel, Table sourceTable, Database targetModel, Table targetTable) Compares the two tables and returns the changes necessary to create the second table from the first one.- Parameters:
sourceModel
- The source model which contains the source tablesourceTable
- The source tabletargetModel
- The target model which contains the target tabletargetTable
- The target table- Returns:
- The changes
-
compareColumns
public List<TableChange> compareColumns(Table sourceTable, Column sourceColumn, Table targetTable, Column targetColumn) Compares the two columns and returns the changes necessary to create the second column from the first one.- Parameters:
sourceTable
- The source table which contains the source columnsourceColumn
- The source columntargetTable
- The target table which contains the target columntargetColumn
- The target column- Returns:
- The changes
-