我正在尝试使用雪松堆栈将新的grails 2.0.3应用程序部署到heroku。我的应用正在使用database migration plugin来管理postgres架构。在开发中,我能够运行grails dbm-update来更新我的架构。在heroku中,似乎无法使用grails。有什么建议?
我目前的解决方法想法包括尝试从我的本地直接连接到heroku postgres并以这种方式运行迁移(不理想,并且无法使用共享数据库),或者可能分支heroku grails buildpack(似乎过度了。)
答案 0 :(得分:2)
我已经成功地通过运行dbm-update(可能是任何grails脚本)来直接针对来自本地计算机的prod。方法如下:
获取heroku pg实例的凭据。我认为只有这样才能使用专用数据库,而不是共享类型。这可能会随着一些very new 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
答案 1 :(得分:0)
为此类情况创建了自动运行功能。请参阅第4部分http://grails-plugins.github.com/grails-database-migration/docs/manual/处的“开始时自动运行”部分。