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 e71b32fe91
commit 83a477a0d1
1 changed files with 18 additions and 17 deletions

View File

@ -177,11 +177,7 @@ public class SchemaMigratorImpl implements SchemaMigrator {
} }
final TableInformation tableInformation = existingDatabase.getTableInformation( table.getQualifiedTableName() ); final TableInformation tableInformation = existingDatabase.getTableInformation( table.getQualifiedTableName() );
if ( tableInformation == null ) { if ( tableInformation != null && !tableInformation.isPhysicalTable() ) {
// big problem...
throw new SchemaManagementException( "BIG PROBLEM" );
}
if ( !tableInformation.isPhysicalTable() ) {
continue; continue;
} }
@ -267,9 +263,11 @@ public class SchemaMigratorImpl implements SchemaMigrator {
continue; continue;
} }
final IndexInformation existingIndex = findMatchingIndex( index, tableInformation ); if ( tableInformation != null ) {
if ( existingIndex != null ) { final IndexInformation existingIndex = findMatchingIndex( index, tableInformation );
continue; if ( existingIndex != null ) {
continue;
}
} }
applySqlStrings( applySqlStrings(
@ -364,19 +362,22 @@ public class SchemaMigratorImpl implements SchemaMigrator {
continue; 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? // todo : shouldn't we just drop+recreate if FK exists?
// this follows the existing code from legacy SchemaUpdate which just skipped // this follows the existing code from legacy SchemaUpdate which just skipped
if ( existingForeignKey == null ) { // in old SchemaUpdate code, this was the trigger to "create"
// in old SchemaUpdate code, this was the trigger to "create" applySqlStrings(
applySqlStrings( exporter.getSqlCreateStrings( foreignKey, metadata ),
exporter.getSqlCreateStrings( foreignKey, metadata ), targets,
targets, false
false );
);
}
} }
} }