我已经设法通过直接针对本地机器上的 prod 运行 dbm-update (可以是任何 grails 脚本)来让事情顺利进行。就是这样:
获取您的 heroku pg 实例的凭据。我认为只有使用专用数据库才能做到这一点,而不是共享类型。这可能会随着一些非常新的 heroku pg 开发而改变。
在带有产品详细信息的 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