1

cedar スタックを使用して、新しい grails 2.0.3 アプリを heroku にデプロイしようとしています。私のアプリは、データベース移行プラグインを使用して postgres スキーマを管理しています。開発中、スキーマを更新するために grails dbm-update を実行できます。heroku では、grails が利用できないようです。助言がありますか?

私の現在の回避策のアイデアには、ローカルから heroku postgres に直接接続してその方法で移行を実行しようとする (理想的ではなく、共有 DB では機能しない) か、heroku grails ビルドパックをフォークする(過剰なようです) ことが含まれます。

4

2 に答える 2

2

ローカル マシンから prod に対して直接 dbm-update (任意の grails スクリプトである可能性があります) を実行することで、うまくいきました。方法は次のとおりです。

  1. heroku pg インスタンスの資格情報を取得します。共有タイプではなく、専用データベースでのみこれを行うことができると思います。これは、いくつかの非常に新しい heroku pg developmentsで変更される可能性があります。

  2. prod の詳細を使用して、datasource.groovy に新しい環境データソースを作成します。私は次のようになります:

 prodadmin {
        dataSource {
            dbCreate = "none"
            driverClassName = "org.postgresql.Driver"
            dialect = org.hibernate.dialect.PostgreSQLDialect
            url = 'jdbc:postgresql://host:5432/dbname?ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory'
            username = 'user'
            password = 'password'
        }
}

それが整ったら、次のようなコマンドを使用して、heroku で本番 Grails アプリのスキーマを更新できます。

 grails -Dgrails.env=prodadmin dbm-update

于 2012-05-23T21:51:09.707 に答える
0

自動実行機能は、このような状況のために作成されました。セクション4のhttp://grails-plugins.github.com/grails-database-migration/docs/manual/のセクション「開始時に自動実行」を参照してください。

于 2012-05-24T00:34:30.550 に答える