ローカル マシンから prod に対して直接 dbm-update (任意の grails スクリプトである可能性があります) を実行することで、うまくいきました。方法は次のとおりです。
heroku pg インスタンスの資格情報を取得します。共有タイプではなく、専用データベースでのみこれを行うことができると思います。これは、いくつかの非常に新しい heroku pg developmentsで変更される可能性があります。
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