HHH-8390 generate FK after UK
This commit is contained in:
parent
31b881bc50
commit
580a71331c
|
@ -1092,9 +1092,17 @@ public class Configuration implements Serializable {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Foreign keys must be created *after* unique keys for numerous DBs. See HH-8390.
|
||||||
|
iter = getTableMappings();
|
||||||
|
while ( iter.hasNext() ) {
|
||||||
|
Table table = (Table) iter.next();
|
||||||
|
if ( table.isPhysicalTable() ) {
|
||||||
|
|
||||||
if ( dialect.hasAlterTable() ) {
|
if ( dialect.hasAlterTable() ) {
|
||||||
subIter = table.getForeignKeyIterator();
|
Iterator subIter = table.getForeignKeyIterator();
|
||||||
while ( subIter.hasNext() ) {
|
while ( subIter.hasNext() ) {
|
||||||
ForeignKey fk = (ForeignKey) subIter.next();
|
ForeignKey fk = (ForeignKey) subIter.next();
|
||||||
if ( fk.isPhysicalConstraint() ) {
|
if ( fk.isPhysicalConstraint() ) {
|
||||||
|
@ -1232,6 +1240,33 @@ public class Configuration implements Serializable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Iterator subIter = table.getIndexIterator();
|
||||||
|
while ( subIter.hasNext() ) {
|
||||||
|
final Index index = (Index) subIter.next();
|
||||||
|
// Skip if index already exists
|
||||||
|
if ( tableInfo != null && StringHelper.isNotEmpty( index.getName() ) ) {
|
||||||
|
final IndexMetadata meta = tableInfo.getIndexMetadata( index.getName() );
|
||||||
|
if ( meta != null ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scripts.add( new SchemaUpdateScript( index.sqlCreateString( dialect, mapping, tableCatalog,
|
||||||
|
tableSchema ), false ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Foreign keys must be created *after* unique keys for numerous DBs. See HH-8390.
|
||||||
|
iter = getTableMappings();
|
||||||
|
while ( iter.hasNext() ) {
|
||||||
|
Table table = (Table) iter.next();
|
||||||
|
String tableSchema = ( table.getSchema() == null ) ? defaultSchema : table.getSchema();
|
||||||
|
String tableCatalog = ( table.getCatalog() == null ) ? defaultCatalog : table.getCatalog();
|
||||||
|
if ( table.isPhysicalTable() ) {
|
||||||
|
|
||||||
|
TableMetadata tableInfo = databaseMetadata.getTableMetadata( table.getName(), tableSchema,
|
||||||
|
tableCatalog, table.isQuoted() );
|
||||||
|
|
||||||
if ( dialect.hasAlterTable() ) {
|
if ( dialect.hasAlterTable() ) {
|
||||||
Iterator subIter = table.getForeignKeyIterator();
|
Iterator subIter = table.getForeignKeyIterator();
|
||||||
while ( subIter.hasNext() ) {
|
while ( subIter.hasNext() ) {
|
||||||
|
@ -1247,20 +1282,6 @@ public class Configuration implements Serializable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Iterator subIter = table.getIndexIterator();
|
|
||||||
while ( subIter.hasNext() ) {
|
|
||||||
final Index index = (Index) subIter.next();
|
|
||||||
// Skip if index already exists
|
|
||||||
if ( tableInfo != null && StringHelper.isNotEmpty( index.getName() ) ) {
|
|
||||||
final IndexMetadata meta = tableInfo.getIndexMetadata( index.getName() );
|
|
||||||
if ( meta != null ) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
scripts.add( new SchemaUpdateScript( index.sqlCreateString( dialect, mapping, tableCatalog,
|
|
||||||
tableSchema ), false ) );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue