我正在尝试使用 cedar 堆栈将新的 grails 2.0.3 应用程序部署到 heroku。我的应用程序正在使用 database migration plugin管理 postgres 架构。在开发中,我能够运行 grails dbm-update 来更新我的模式。在 heroku 中,grails 似乎不可用。有什么建议么?
我目前的解决方法包括尝试从我的本地直接连接到 heroku postgres 并以这种方式运行迁移(不理想,并且不适用于共享数据库),或者 fork heroku grails buildpack (似乎过分)。
最佳答案
我已经设法通过直接从我的本地机器针对 prod 运行 dbm-update(可以是任何 grails 脚本)来让事情顺利进行。方法如下:
获取您的 heroku pg 实例的凭据。我认为只能使用专用数据库而不是共享类型来执行此操作。这可能会随着一些 very new heroku pg developments 而改变。 .
在带有产品详细信息的 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
关于postgresql - 如何在 heroku 中运行 grails 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10727648/