Падение SchemaExport. Спящий режим 3 против Спящего 5 - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть устаревший тест, я пытаюсь начать работать с 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()
...