postgresql - 如何在 heroku 中运行 grails 命令?

标签 postgresql grails heroku database-migration

我正在尝试使用 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 脚本)来让事情顺利进行。方法如下:

  1. 获取您的 heroku pg 实例的凭据。我认为只能使用专用数据库而不是共享类型来执行此操作。这可能会随着一些 very new heroku pg developments 而改变。 .

  2. 在带有产品详细信息的 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/

相关文章:

ruby-on-rails - git push heroku master 错误权限被拒绝(公钥)

PostgreSQL 递归和 ORDER BY 最新根

sql - 确定postgres中一系列日期的连续长度

grails - 删除之前与多对多关系

grails - 处理snmp的软件

python - Celery - Heroku 上带有 Celery 工作进程的 Django Web 应用程序 - 我该如何追查此内存泄漏?

postgresql - 将列类型从 varchar 更改为时间戳

arrays - 在 begin 和 end 中动态创建数组

grails - grails 2.0 vs 1.3.7,flash.message和gsps的工作方式

heroku - 在 Heroku 上使用 jRuby cext 构建 gem