如何在heroku中运行grails命令?

时间:2012-05-23 20:51:09

标签: postgresql grails heroku database-migration

我正在尝试使用雪松堆栈将新的grails 2.0.3应用程序部署到heroku。我的应用正在使用database migration plugin来管理postgres架构。在开发中,我能够运行grails dbm-update来更新我的架构。在heroku中,似乎无法使用grails。有什么建议?

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

2 个答案:

答案 0 :(得分:2)

我已经成功地通过运行dbm-update(可能是任何grails脚本)来直接针对来自本地计算机的prod。方法如下:

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

  2. 使用prod详细信息在datasource.groovy中创建一个新的环境数据源。我看起来像:

  3.  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/处的“开始时自动运行”部分。