Railsのデータベース移行機能をエミュレートするGrailsプラグインは少なくとも2つあります。
これらのどれが最適かについてのコンセンサスはありますか、またはデータベースの移行を上記のいずれよりも優れた別のプラグインがありますか?
現在、標準のGrailsデータベース移行プラグインが利用可能です。したがって、このブログ投稿によると、少なくともliquibaseプラグインは、liquibase1.9リリース以降は維持されなくなります。
新しいデータベース移行プラグインには、起動時に変更ログを実行する機能が組み込まれており、Groovy DSLでの変更の定義をサポートしているため、おそらくそれがあなたが探しているものです。
Autobase(Liquibaseの上に構築されている)を使用しているのは、(前回チェックしたときに)アプリの起動時に移行を自動的にチェック/適用できるためです。Liquibaseプラグインを使用すると、サーブレットの初期化コードでこれを自分で行う必要があります。これにより、データソースをに設定しdbCreate = none
、AutobaseにDBの形成を処理させることができます。
ドメインクラスにプロパティを追加するたびに移行を作成する必要があるということですが、Hibernateに推測させるのではなく、基になるフィールドが実際にどうあるべきかを考えることができるので、これは良いことだと思います。それ。
Autobaseプラグインの一部(たとえば、groovy dsl)がLiquibaseプラグインに移行されていると思いますが、それを確認する必要があります。
Autobaseの唯一の欠点は、優れたドキュメントがないことです。いくつかありますが、完全ではありません。幸い、dslはxml Liquibaseタグと同じであるため、ほとんどの作業を行うことができます。
私はliquibaseを使用していますが、RobertがまだAutobaseを積極的に維持しているかどうかはわかりません。また、liquibaseが提供するxmlは実際にはかなりDSLに似ています。また、データベースコマンドを少し分離し、起動プロセスに浸透させないと思います(逆を好む人もいます)。
少なくともGrails2.0の時点では、データベース移行プラグインは、重要なデータベースの変更を処理するための事実上の方法です。プラグインはLiquibase上に構築されており、Springsourceの人々によって作成されています-常に品質の証です。これを読んでいる人に役立つかもしれないデータベース移行プラグインの紹介を書きました。
Autobaseはまだ維持されていると聞きましたが、Grailsデータベース移行プラグインはコアチームによって作成されており、正式にサポートされる可能性が高いと考えてください。
つまり、上記のプラグインのいずれかを選択する前に、Grails1.4->ロードマップを待つことをお勧めします。
はい、移行プラグも表示されます。これは役に立ちます... http: //grails-plugins.github.io/grails-database-migration/