From 07973f29a2fb596cb55b68fe85bc7cb130a40ca3 Mon Sep 17 00:00:00 2001 From: Steve Ebersole Date: Tue, 14 Aug 2012 09:53:00 -0500 Subject: [PATCH] HHH-7472 - Introduce a "schema management" service --- .../schema/internal/SchemaDropperImpl.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/service/schema/internal/SchemaDropperImpl.java b/hibernate-core/src/main/java/org/hibernate/service/schema/internal/SchemaDropperImpl.java index 78805bd5a0c0..3c4d9a3ce3f2 100644 --- a/hibernate-core/src/main/java/org/hibernate/service/schema/internal/SchemaDropperImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/service/schema/internal/SchemaDropperImpl.java @@ -74,23 +74,23 @@ public void doDrop(Database database, boolean dropSchemas, Target... targets) th } for ( Table table : schema.getTables() ) { - if ( ! dialect.supportsUniqueConstraintInCreateAlterTable() ) { - for ( UniqueKey uniqueKey : table.getUniqueKeys() ) { - applySqlStrings( uniqueKey, targets, dialect, exportIdentifiers ); - } - } - - for ( Index index : table.getIndexes() ) { - applySqlStrings( index, targets, dialect, exportIdentifiers ); - } + if ( dialect.dropConstraints() ) { + // we need to drop constraints prior to dropping table - if ( dialect.hasAlterTable() ) { for ( ForeignKey foreignKey : table.getForeignKeys() ) { // only add the foreign key if its target is a physical table if ( Table.class.isInstance( foreignKey.getTargetTable() ) ) { applySqlStrings( foreignKey, targets, dialect, exportIdentifiers ); } } + + for ( UniqueKey uniqueKey : table.getUniqueKeys() ) { + applySqlStrings( uniqueKey, targets, dialect, exportIdentifiers ); + } + + for ( Index index : table.getIndexes() ) { + applySqlStrings( index, targets, dialect, exportIdentifiers ); + } } applySqlStrings( table, targets, dialect, exportIdentifiers );