gpt4 book ai didi

playframework-2.0 - 如何使用 Play 将数据库标记为在生产中已解决的不一致状态

转载 作者:行者123 更新时间:2023-12-02 01:42:30 26 4
gpt4 key购买 nike

我在以下环境中使用 Scala Play 2.3.1 版

  • 在笔记本电脑上开发
  • 使用 Heroku 部署进行测试
  • 和一个人一起生活Heroku 部署

我正在使用演变对数据库结构进行更改。涉及删除索引和添加其他索引有点复杂。这是evolution 5,test和live目前都在evolution 4上。

如果我破坏了我开发机器上的数据库,应用程序会按预期运行。如果我部署测试,我在访问任何网页时都会收到“应用程序错误”

在我得到的日志中:

play - Run with -DapplyEvolutions.default=true and -DapplyDownEvolutions.default=true if you want to run them automatically, including downs (be careful, especially if your down evolutions drop existing data) Database 'default' needs evolution! Oops, cannot start the server.

我确实设置了 -DapplyEvolutions.default=true,但我没有启用“downs”(它们具有破坏性,我不想执行它们)当我通过 Sql Squirrel 访问数据库时,我找到以下内容

  • 5 行
  • “applied_at”的每一列都有一个数据(包括第 5 行)
  • 每一列“state”都有值“applied”

我调查了数据库并应用了 evolution 5。

因此,如果我在开发模式下运行,我可能会看到网页“数据库默认处于不一致状态”。我会单击“标记为已解决”按钮,然后我可以继续

在“生产模式”下运行时如何执行此操作?

最佳答案

我从 Google Group Play-Framework 收到了这个答案

Unfortunately you can not “mark the database as resolved” if you run the application in Prod mode. I think this is a problem in Play, can you please file an issue about that (http://github.com/playframework/playframework/issues)?

To solve your problem, you can either run the application in Dev mode (using sbt run) and then click on the button from your web browser, or manually update the play_evolutions table to mark your conflicts as resolved (here is how it is done by Play: https://github.com/playframework/playframework/blob/master/framework/src/play-jdbc/src/main/scala/play/api/db/evolutions/EvolutionsApi.scala#L297-L311).

提出问题后,我手动执行了以下操作

update play_evolutions set state = 'applied' where state = 'applying_up' and id = " + revision
delete from play_evolutions where state = 'applying_down' and id = " + revision

这并不能解释我的所有症状:但我很容易遇到两个问题。例如,当我查看 play_evolution 表时,没有“applying_up”或“applying_down”。然而,这确实“解决”了这部分问题,并且对我理解正在发生的事情有很大帮助

关于playframework-2.0 - 如何使用 Play 将数据库标记为在生产中已解决的不一致状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27689119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com