ドキュメントに従って、すでにかなりの数のテーブルがあり、本番環境で実行されている既存のプロジェクトでデータベース移行プラグインを動作させることができました。ローカルで次のプロセスを実行しました。
Pulled down latest production database
Source production database to local dev
grails dbm-generate-changelog changelog.groovy
grails dbm-changelog-sync
grails dbm-gorm-diff 2012-06-25-latest.groovy --add
grails dbm-update
将来の変更セットを適用する段階に到達するために、これらのそれぞれをローカルで実行しなければならなかった理由を理解しています。しかし、今度はテスト サーバーの 1 つで 2012-06-25-latest.groovy を実行したいと考えています。本番データベースに基づく最新のデータベースがすでにあります。
dbm-update を実行しようとしましたが、同期がないと、既に存在するテーブルの作成に失敗しました。そのため、dbm-changelog-sync を実行しましたが、dbm-update を実行すると、実際には最新のファイルが適用されませんでした。
コンテキスト (タグ) を変更セットに追加して、dbm-update を実行するときにそのコンテキストを指定できることはわかっていますが、これが唯一の方法なのか、それともワークフローを変更する必要があるのかを知りたいです。変更ログをテスト サーバーに適用する最良の方法は何ですか?