【问题标题】:Playframework 2.1 and Heroku update problemsPlayframework 2.1 和 Heroku 更新问题
【发布时间】:2013-06-24 09:02:43
【问题描述】:

我创建了一个 play framework 2.1.0 项目并将其部署在 heroku 上。上周五我不得不更改数据模型以添加一些额外的字段。一旦我尝试部署更改,它就会给我带来进化错误。

无法解决问题我已恢复更改并部署旧版本,但我仍然收到错误。

我得到的当前错误是这样的

 database [default] connected at jdbc:postgresql: ...
 Position: 27 [ERROR:0, SQLSTATE:42601]
 ERROR: syntax error at or near "FALSE"
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:435)
Oops, cannot start the server.
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:434)
at play.api.db.evolutions.Evolutions$.evolutionScript(Evolutions.scala:306)
at scala.collection.immutable.List.foreach(List.scala:309)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:63)
at play.api.Play$.start(Play.scala:62)
at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:432)
@6ele4bdao: Database 'default' is in inconsistent state!
....

要部署我使用以下 procfile 行:

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

还建议我使用heroku pg:psqlSELECT id, last_problem FROM play_evolutions; 来找出错误并显示syntax error at or near "FALSE",但我在我的1.sql 文件中没有看到任何错误。

任何人都可以帮我解决这个问题,这让我发疯了。

【问题讨论】:

    标签: heroku playframework-2.1 heroku-postgres


    【解决方案1】:

    有两种选择:

    • 您的进化脚本错误,您应该在您的开发环境中针对本地 postgresql 数据库对其进行测试

    • 您提到您之前已经进行过部署。这意味着进化已经开始了。但是您还提到您正在检查1.sql 中的错误。如果您已经运行了一次进化,Play 会期望新脚本位于 2.sql 中。这可能是您收到异常的原因。

    另一个解决方案是禁用进化(在application.conf 中设置evolutionplugin=disabled)并通过客户端连接到postgresql 数据库手动进行更改。这可能意味着额外的工作,但它可能是避免使数据库处于不稳定状态的更安全的选择。有时,控制胜于自动化。

    【讨论】:

    • 感谢帮助。应该自动生成 2.sql 还是应该重命名生成的 1.sql?我没有在本地运行。我也在我的本地 postgresql 上进行了测试,它工作正常。所以我最终使用了手动选项并删除了表格
    • 你应该创建一个新文件,所以你有 1.sql 和 2.sql。 Play 不会自动生成进化文件,你必须创建它们。
    • 如何在本地测试进化?
    猜你喜欢
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 1970-01-01
    相关资源
    最近更新 更多