4

Grails schema-export は、DDL を生成して特定のデータベースのデータベース スキーマを作成するという優れた仕事をします。しかし、私がやりたいことは、ゼロから作成するための DDL ではなく、既に作成されたスキーマへの更新用の DDL を grails に出力させることです。

dbCreate = "update"データソースで指定した場合、grailsには実際にスキーマを更新する機能があるため、可能であると考えています。

しかし、grails が実際に実行するのではなく、実行する内容を吐き出してほしいだけなので、制御された方法で SQL ツールを介して自分で実行できるようになります。

4

1 に答える 1

6

@GreyBeardedGeek がコメントで指摘したように、データベース移行プラグイン(現在はデフォルトで含まれています) は、探している「スキーマ差分」を生成できます。GrailsdbCreate = "update"のネイティブ db が更新は Hibernate が提供するもののみに依存しており、実行できる更新は非常に保守的です。

特に、探しているデータベース移行プラグインの部分はdbm-update-sqlスクリプトであり、DB を現在のスキーマ バージョンに更新するために実行する SQL を提供します。

一般に、Database Migration プラグインのようなツールを使用することを強くお勧めします。これは、DB スキーマをアプリケーション コードにバンドルし、それらを一緒に簡単にバージョン管理できるためです。また、多くのツールが含まれているため、更新の実行がはるかに少なくなります。痛みがあり、必要に応じてロールバックとカスタム スクリプトで処理できます。

于 2012-09-17T14:26:27.273 に答える