Используя Grails 2.4.4, я перенес свои классы предметной области из версии 2.2.0.
Есть проблема, с которой я столкнулся в конфигурации DataSource «создать-удалить», используя MySQL в качестве источника данных.
Всякий раз, когда я запускаю команду grails stop-app
, из 35 таблиц в схеме остается 22 таблицы.
После включения режима отладки для классов Hibernate и в конце процесса остановки приложения он генерировал drop table if exists <tablename>
для всех 35 таблиц, но в журналах не было ошибок/подтверждений о том, удалось ли удалить таблицу или нет.
Оставшиеся таблицы имеют ассоциации FK, и их необходимо удалить в определенном порядке. С той же структурой класса домена у меня никогда не было этой проблемы с более ранней (2.2.0) версией Grails.
Прямо сейчас я каждый раз перед запуском приложения создаю вручную, так как это вызывает проблемы с данными BootStrap.
Любой указатель на отладку этой проблемы или вариант использования, когда это может произойти, будут оценены.
alter table tablename drop foreign key FK_hrogx8ddq6cptuh5ru8uycn6s
. Запуститеgrails schema-export
и посмотрите наtarget/ddl.sql
, чтобы увидеть SQL, который генерирует Hibernate. - person Burt Beckwith   schedule 19.01.2015grails schema-export
и сгенерировал файл, а начальные 35 строк —drop table if exists <tablename>
. В файле нетalter table tablename drop foreign key <FK>
. - person v1p   schedule 19.01.2015drop table if exists <tablename>
, потомcreate table <tablename>
, потомalter table add UK constraints
и создание индексов, в последнемalter table add FK constrains
- person v1p   schedule 19.01.2015ImprovedMySQLDialect
, чтобы избавиться от этого несколько дней назад. так что я по незнанию запретил падение FK. Поэтому, чтобы избавиться от этой другой проблемы, мне нужно реализовать лучшее решение. рассмотрим переопределение метода dropConstraints(). Спасибо @BurtBeckwith за то, что указал мне правильное направление. - person v1p   schedule 19.01.2015