私はGrails 2.5.xアプリケーションの非常に特殊な要件に取り組もうとしています。データベースのスキーマをアップグレードする前に、アプリケーションの開始前に一連のデータベース変換スクリプト(DBのバージョン/アプリケーションのバージョン)。私たちはこれまで「伝統的な」Java Servletアプリケーションでこれを行っていましたが、Grailsと少し面倒です。Grailsにpre-GORM initフックがありますか?
質問:イベントは、私は何とか私はGroovyと既存のデータソース構成を使用することができるようになるアプリの起動時ににフックができ、まだGORM/Hibernateが起動する前に起こるであろうと、Grailsのでは、ありますか?
一部のオプションは、私はすでに確認されました:
- ブートストラップのinitクロージャは、データベーススキーマの期限が切れた場合、アプリケーションは単に「検証」モードで起動しないと同じように、ここでは動作しません。
- これまで使用していなかったEvents.groovyがありますが、これらのイベントは、WARファイルにパッケージ化され、アプリケーションコンテナにデプロイされた自己完結型アプリケーションではなく、grailsのコンパイル/ビルドライフサイクルを目的としています。
- grails database-migrationプラグインは似ていると思われ、ターゲットサーバでGrailsのコマンドラインを利用できると期待しています。
と、変換は管理者によって手動で実行されます。 私はここで間違っている可能性が高いと判明しました。
実際には、データベースの移行はアプリの起動時に自動的に実行され、純粋に手動ではありません。私はプラグインをもう一度見てみることをお勧めします。それはあなたが探しているものなのですから。 –
ありがとうございますジョシュア - 私はそれをチェックします!多分、私はプラグインの説明を素早く読んだ後、間違った考えをしているかもしれません。 – Rado
grails.plugin.databasemigration.updateOnStartFileNames = ['your-db-specific-changelog-filename.groovy'] < - データベースのすべてのリビジョンは、移行スクリプトによって実行されます。我々はh2、Oracle、SQLServer、MySQLに応じて異なるスクリプトを持っています。データベース移行は一般に非常に可能です。 – railsdog