Я пытаюсь следовать руководству здесь.
Я объявил зависимость для подключаемого модуля миграции базы данных в моем файле BuildConfig.groovy с помощью runtime ":database-migration:1.0"
, а затем скомпилировал. Я также закомментировал строку dbCreate
моих производственных настроек в моем файле DataSource.groovy. Моя производственная база данных пуста, в ней нет таблиц.
Затем я пытаюсь запустить две команды для создания моего начального журнала изменений:
grails dbm-create-changelog
grails prod dbm-generate-gorm-changelog --add changelog-1.0.groovy
Проблема в том, что первая команда создает таблицы в моей базе данных разработки, а не в производственной базе данных. Затем второй команде не удается создать файл changelog-1.0.groovy
, который она должна создать (я предполагаю), потому что в производственной базе данных никогда не создавались таблицы. Я получаю несколько ошибок, которые говорят, что Hibernate не удалось проиндексировать базу данных, и я получаю кучу таких ошибок:
| Error 2012-07-10 08:40:28,704 [Compass Gps Index [pool-11-thread-2]] ERROR util.JDBCExceptionReporter - Table 'mygrailsapp_prod.some_class' doesn't exist
Даже когда я комментирую свои настройки разработки в файле DataSource.groovy, Grails все еще ищет мою базу данных разработки. Однако я должен указать, что если я уберу prod
из второй команды, файл changelog-1.0.groovy
сгенерируется нормально, хотя я не уверен, будет ли он каким-то образом испорчен, потому что он был сгенерирован из базы данных разработки (в которой не было таблиц, пока я не запустил первая команда) вместо производственной базы данных.
Что я здесь делаю неправильно?