2012-05-23 75 views
1

我试图部署一个新的grails 2.0.3应用程序使用雪松堆栈heroku。我的应用程序使用database migration plugin来管理postgres架构。在开发中,我可以运行grails dbm-update来更新我的模式。在heroku中,似乎grails不可用。有什么建议么?如何在heroku中运行grails命令?

我目前的解决方法想法包括尝试从我的本地直接连接到heroku postgres并以这种方式运行迁移(不理想,并且不能用共享数据库),或者分叉heroku grails buildpack(似乎过多) 。

回答

2

我已经设法通过运行dbm-update(可以是任何grails脚本)直接对我的本地机器进行操作。方法如下:

  1. 获取您的heroku pg实例的凭据。我认为只有这样才能做到这一点瓦特/专用数据库,而不是共享类型。这可能会改变一些very new heroku pg developments

  2. 在您的datasource.groovy w/prod细节中创建一个新的环境数据源。我的是这样的:

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' 
     } 
} 
 

有了到位,你可以继续用这样的命令更新生产的Grails应用程序在Heroku的模式:自动运行功能创建

grails -Dgrails.env=prodadmin dbm-update