gpt4 book ai didi

scala - play 框架 2.0 演进,如何在 PROD 中将不一致的状态标记为已解决

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

我有一个用 Scala play2.0 开发的应用程序,
它在本地成功运行,但如果部署到 heroku 时失败。

失败的原因是我在本地使用的是 H2 数据库,
并在 heroku 中使用 postgresql,我必须将其中一种数据类型从“clob”更改为“text”。

根据 play20 文档,现在的问题是 heroku 中的数据库处于“不一致状态”。
在 DEV 模式下(本地),您可以在 html 出现时单击“将其标记为已解决”。

如何在heroku PROD环境中“将其标记为已解决”?
http://www.playframework.com/documentation/2.1.1/Evolutions

ps:注意,因为是新的应用程序,我刚刚删除了数据库并重新启动。
然而,我在这里问的是处理 PROD 环境中演变的正确方法是什么。
也就是说,这里没有解释 PROD 的“标记为已解决”问题:http://www.playframework.com/documentation/2.1.1/Evolutions

最佳答案

虽然我无法通过 play 找到方法来做到这一点。命令,您可以通过直接编辑数据库来完成。

想象一下,您正试图从 5.sql 出发。至 6.sql .这是你要做的:

  • 找出并修复导致数据库进入不一致状态的问题(即手动应用您的 !Ups 并修复所有问题)。
  • 手动应用您的 !Downs使数据库处于 5.sql 之后的状态被应用。
  • 进入你的数据库,找到名为 play_evolutions 的表,然后查看 ID 为 6 的行.它应该说类似 applying upsstate列并在 last_problem 中有错误消息柱子。
  • 删除 ID 为 6 的行.这将使 Play 认为您处于您之前的状态 5.sql .
  • 现在你应该可以运行 play -DapplyEvolutions.default=true start进化到6.sql .
  • 关于scala - play 框架 2.0 演进,如何在 PROD 中将不一致的状态标记为已解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16400015/

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