0

データベース移行機能を使用して、Jenkins(Hudson) ビルド サーバーを介して、UAT およびライブ システムに DB スキーマの変更を実装したいと考えています。

最も簡単な方法は、毎回「-Dgrails.env=uat dbm-gorm-diff changelog-.xml --add」を実行することです。ただし、私の試行では、ドメイン モデルに変更がない場合でも、常に「空の」変更ログが作成され、changelog-master.xml が更新されることが示されています。これは理想的ではありません。

「ドメインモデルが変更されたときにのみ変更ログを作成する」という、私が見つけていないオプションはありますか?

それ以外の場合は、Ant ビルド スクリプトにステップを追加して changelog-.xml ファイル内のエントリを探す必要があるように見えます。見つからない場合は、ファイルを削除してマスター変更ログをバックアップから復元するか、編集する必要があります。最新の「include」エントリを削除します。

誰か他の良いアイデアがあれば、大歓迎です。

よろしく、ジョン

4

2 に答える 2

1

避けるために :

grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix() は引数の型に適用できます: (null) 値: [null] at

プロジェクト名の変更などでこれらすべてを行う必要はありません。クリアするだけで済みます。

"path_to_user_dir"/.grails/projects/"project_name"/scriptCache ディレクトリ

于 2013-03-01T13:23:34.440 に答える
0

1.3.2 をインストールすると、プラグインを削除しても削除されない何かが追加されたようです。申し訳ありませんが、あまり科学的な説明ではありませんが、そのように見えます。

現在は 1.2.2 に戻っていますが、実行する dbm-* スクリプトに関係なく、同じエラーが発生します。

======================

エラー スクリプトの実行中にエラーが発生しました DbmGenerateGormChangelog: groovy.lang.MissingMethodException: メソッドの署名がありません: static grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix() は引数の型に適用できます: (null) 値: [null] (注: スタック トレースは--verbose を使用してトレース全体を表示します。) groovy.lang.MissingMethodException: メソッドのシグネチャがありません: static grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix() は引数の型に適用できます: (null) 値: [null] at _DatabaseMigrationCommon_groovy$_run_closure1.doCall(_DatabaseMigrationCommon_groovy:37) at DbmGenerateGormChangelog$_run_closure1.doCall(DbmGenerateGormChangelog:23) エラー スクリプトの実行中にエラーが発生しました DbmGenerateGormChangelog: groovy.lang.MissingMethodException: メソッドの署名がありません: static grails.plugin.databasemigration.MigrationUtils.dataSourceNameWithSuffix() は引数の型に適用されます: (null) 値: [null]

==============

1.3.2 を削除し、GGTS を再記述してから以前のバージョンをインストールし、1.2.1 に戻してから 1.2.2 に戻しましたが、変更はありません。1.2.2 を再び動作させることができるかどうかを確認するには、新しいワークスペースを試してみる必要があるようです。Rgds、ジョン

于 2013-01-10T11:08:52.100 に答える