У меня есть устаревший тест, я пытаюсь начать работать с Hib5 и вижу разницу в поведении при использовании SchemaExport (drop). Похоже, что в Hib 3.x выполнение отбрасывания сгенерировало необходимые операторы «alter table drop external key» перед генерацией операторов «drop table if there». В Hib 5.x операторы «alter table…» больше не генерируются, и, следовательно, некоторые отбрасывания таблиц дают сбой из-за все еще существующих ограничений.
Каков правильный подход в Hib 5.x для обеспечения удаления всех ограниченийперед таблицами?
Вот записанный SQL из сбойной Hib 5:
4391 Query drop table if exists test_Child
4391 Query select now()
4391 Query drop table if exists test_ChildOfChildSubclass
4391 Query SHOW WARNINGS
4391 Query drop table if exists test_ChildSubclass
4391 Query SHOW WARNINGS
4391 Query drop table if exists test_Contact
4391 Query select now()
4391 Query drop table if exists test_ContactSubClass
4391 Query SHOW WARNINGS
4391 Query drop table if exists test_ExampleClassWithUnits
4391 Query SHOW WARNINGS
4391 Query drop table if exists test_GrandChild
4391 Query SHOW WARNINGS
4391 Query drop table if exists test_NonUniqueChild
4391 Query select now()
4391 Query drop table if exists test_NonUniqueGrandChild
4391 Query SHOW WARNINGS
4391 Query drop table if exists test_Parent
4391 Query select now()
4391 Query drop table if exists test_UpdateExample
4391 Query SHOW WARNINGS
4391 Query select now()
Вот записанный SQL из успешной Hib 3:
4496 Query alter table test_Address drop foreign key FKD2196D27564B97C6
4496 Query SHOW WARNINGS
4496 Query alter table test_Child drop foreign key FK78BE770FC4E22DEE
4496 Query SHOW WARNINGS
4496 Query alter table test_ChildOfChildSubclass drop foreign key FK125A48CEF0F7E666
4496 Query SHOW WARNINGS
4496 Query alter table test_ChildSubclass drop foreign key FKE2752F679E633946
4496 Query SHOW WARNINGS
4496 Query alter table test_ContactSubClass drop foreign key FKADFC398B4E28B8B7
4496 Query SHOW WARNINGS
4496 Query alter table test_GrandChild drop foreign key FK42C2C95D9E633946
4496 Query SHOW WARNINGS
4496 Query alter table test_NonUniqueChild drop foreign key FK3B65E2BC4E22DEE
4496 Query SHOW WARNINGS
4496 Query alter table test_NonUniqueGrandChild drop foreign key FK596AF3C1FEE23650
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_Address
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_Child
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_ChildOfChildSubclass
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_ChildSubclass
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_Contact
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_ContactSubClass
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_ExampleClassWithUnits
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_GrandChild
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_NonUniqueChild
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_NonUniqueGrandChild
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_Parent
4496 Query SHOW WARNINGS
4496 Query drop table if exists test_UpdateExample
4496 Query SHOW WARNINGS
4496 Query select now()