Playframework 2.1和Heroku的更新问题(Playframework 2.1 an

2019-10-18 06:52发布

我已经打造成一个框架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:psql沿SELECT id, last_problem FROM play_evolutions; 找出错误和它说syntax error at or near "FALSE" ,但我看不到我的1.SQL文件中的任何错误。

谁能给我个忙。它的驾驶我疯了。

Answer 1:

有2个选项:

  • 你进化的脚本是不对的,你应该在你的开发环境测试它针对本地PostgreSQL数据库

  • 你提到你之前已经做了部署。 这意味着进化已经运行。 但你也提到你检查内部错误1.sql 。 如果你已经运行一次变阵,玩会期待新的脚本是在2.sql 。 这可能是你所得到的异常的原因。

另一种解决方案是禁用演进(组evolutionplugin=disabledapplication.conf ),并通过经由客户端连接到PostgreSQL数据库手动执行的更改。 这可能意味着额外的工作,但它可能是一个更安全的替代,以避免留下数据库处于不稳定状态。 有时,控制比自动化更好。



文章来源: Playframework 2.1 and Heroku update problems