【问题标题】:Play Framework [2.1.1-java] deployment error on Heroku在 Heroku 上播放框架 [2.1.1-java] 部署错误
【发布时间】:2013-06-26 01:37:13
【问题描述】:

我使用默认的内存 h2 数据库在本地开发了我的应用程序。一切正常。

现在我尝试通过推送到 Heroku 来部署我的应用程序。

在此之前,我使用这一行将 Procfile 添加到我的应用程序的根文件夹中:

web: target/start -Dhttp.port=${PORT} -DapplyEvolutions.default=true -Ddb.default.url=${DATABASE_URL} -Ddb.default.driver=org.postgresql.Driver

我的 application.conf 看起来像:

db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play;MODE=PostgreSQL"

所以我推送了它,然后,当我尝试访问我的应用时,我得到:

Salieri:addressManager administrator$ heroku ps
=== web (1X): `target/start -Dhttp.port=${PORT} -DapplyEvolutions.default=true -Ddb.default.url=${DATABASE_URL} -Ddb.default.driver=org.postgresql.Driver`
web.1: crashed 2013/06/27 22:04:16 (~ 4m ago)

在heroku日志中:

2013-06-27T20:04:14.511136+00:00 app[web.1]: [error] play - ERROR: syntax error at or near "user"
2013-06-27T20:04:14.515578+00:00 app[web.1]: at play.api.db.evolutions.Evolutions$.databaseEvolutions(Evolutions.scala:334)
2013-06-27T20:04:14.515153+00:00 app[web.1]: @6emdb57b1: Database 'default' is in inconsistent state!

我试图删除整个数据库

heroku pg:reset HEROKU_POSTGRESQL_ROSE_URL

然后我又推了一次,但没有成功。

我不得不提一下,我之前做过推送,当时我的应用在 Heroku 上运行。唯一的问题是,我无法使用我的装置中提供的凭据登录(Global.java 文件,应用程序启动时有一个作业)。

有什么建议吗?

【问题讨论】:

    标签: java heroku playframework-2.0 heroku-postgres


    【解决方案1】:

    从此错误:

    ERROR: syntax error at or near "user"
    

    我猜你的 Evolution 脚本是错误的。 User 是 SQL 中的保留字。请尝试在开发 PostgreSQL 数据库中本地运行 Evolution 脚本。工作后,您可以尝试再次部署。

    我还建议禁用生产应用程序的进化,有时这是一个有风险的系统。

    【讨论】:

      【解决方案2】:

      PostgreSQL 将user 解释为关键字。如果您的应用程序中有一个app/models/User 类,play 将尝试创建一个名为user 的表。避免这种情况的最简单方法是将User 类重命名为MyUser。 (如果您在其中一个类中使用名为 user 的属性,也会发生同样的情况。在这里,您也应该重命名它。

      然后您应该在本地运行您的应用程序并在浏览器中打开它,以便更新进化脚本文件。然后您可以在conf/evolutions/default/1.sql 找到进化脚本。根据这个例子,它现在应该创建一个名为my_user 的表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-27
        • 2013-07-11
        • 2013-01-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多