2017-01-25 2 views
1

У меня эта странная проблема. У меня есть приложение Grails, в котором отсутствуют некоторые файлы изменений в базе данных. Поэтому база данных не синхронизирована с классами домена. Я внес некоторые изменения в классы домена. Когда я пытаюсь запустить плагин миграции базы данных, он создает разницу между текущими классами домена и базой данных и пытается выполнить все команды sql, которые уже были запущены, что вызывает ошибку при выполнении команд, которые я хочу выполнить.Классы доменов и база данных не синхронизированы в Grails

Есть ли решение этой проблемы?

ответ

2

Если я правильно понимаю вашу проблему, вы можете воссоздать все недостающие изменения, используя dbm-generate-changelog. Это создаст изменения на основе текущей модели данных. Затем вы можете использовать dbm-changelog-sync, чтобы пометить эти изменения как EXECUTED (который заполнит таблицу DATABASECHANGELOG). После того, как таблица DATABASECHANGELOG синхронизируется с текущей моделью данных, вы можете использовать dbm-gorm-diff, чтобы убедиться, что вы не пропустили никаких других изменений модели данных.

https://grails-plugins.github.io/grails-database-migration/1.4.0/ref/Maintenance%20Scripts/dbm-changelog-sync.html

ПРИМЕЧАНИЕ: Мой ответ предполагает, что вы используете Grails 2.x и миграции базы данных плагина 1.4.x, но я считаю, что процесс похож на Grails 3.x миграции базы данных Plugin 2.x или 3.x.

Смежные вопросы