HHH-10180 - Fix hbm2ddl tools cannot generate create/update script not modifying the database

This commit is contained in:
Andrea Boriero 2015-10-16 15:08:57 +01:00
parent 9b34880baf
commit fa7fcf5b95

View File

@ -177,11 +177,7 @@ protected void doMigrationToTargets(
}
final TableInformation tableInformation = existingDatabase.getTableInformation( table.getQualifiedTableName() );
if ( tableInformation == null ) {
// big problem...
throw new SchemaManagementException( "BIG PROBLEM" );
}
if ( !tableInformation.isPhysicalTable() ) {
if ( tableInformation != null && !tableInformation.isPhysicalTable() ) {
continue;
}
@ -267,9 +263,11 @@ private void applyIndexes(Table table, TableInformation tableInformation, Metada
continue;
}
final IndexInformation existingIndex = findMatchingIndex( index, tableInformation );
if ( existingIndex != null ) {
continue;
if ( tableInformation != null ) {
final IndexInformation existingIndex = findMatchingIndex( index, tableInformation );
if ( existingIndex != null ) {
continue;
}
}
applySqlStrings(
@ -364,19 +362,22 @@ private void applyForeignKeys(
continue;
}
final ForeignKeyInformation existingForeignKey = findMatchingForeignKey( foreignKey, tableInformation );
if ( tableInformation != null ) {
final ForeignKeyInformation existingForeignKey = findMatchingForeignKey( foreignKey, tableInformation );
if ( existingForeignKey != null ) {
continue;
}
}
// todo : shouldn't we just drop+recreate if FK exists?
// this follows the existing code from legacy SchemaUpdate which just skipped
if ( existingForeignKey == null ) {
// in old SchemaUpdate code, this was the trigger to "create"
applySqlStrings(
exporter.getSqlCreateStrings( foreignKey, metadata ),
targets,
false
);
}
// in old SchemaUpdate code, this was the trigger to "create"
applySqlStrings(
exporter.getSqlCreateStrings( foreignKey, metadata ),
targets,
false
);
}
}