Scala play framework 2.0演进,如何将不一致状态标记为PROD中已解决

Scala play framework 2.0演进,如何将不一致状态标记为PROD中已解决,scala,heroku,playframework-2.0,Scala,Heroku,Playframework 2.0,我有一个用scala play2.0开发的应用程序, 它在本地运行成功,但在部署到heroku时失败 失败的原因是我在本地使用了一个H2数据库, 在heroku中使用postgresql,我必须将其中一种数据类型从“clob”更改为“text” 根据play20文档,现在的问题是heroku中的数据库处于“不一致状态”。 在开发模式下(本地),当html出现时,您只需单击“将其标记为已解决” 如何在heroku PROD环境中“标记并请求解决”? 注意,因为这是一个新的应用程序,我刚刚删除了数

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

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

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

如何在heroku PROD环境中“标记并请求解决”?

注意,因为这是一个新的应用程序,我刚刚删除了数据库并重新启动。 然而,这里我要问的是,在PROD环境中处理演化的正确方法是什么。
也就是说,这里没有解释PROD的“将其标记为已解决”问题:

不一致状态只是意味着无法应用演进,因此应用程序被阻止。更新您的进化脚本并重新部署

虽然我找不到通过
play
命令执行的方法,但您可以通过直接编辑数据库来执行

假设您正试图从
5.sql
转换到
6.sql
。以下是您要做的:

  • 找出并修复导致数据库进入不一致状态的问题(即手动应用
    !Ups
    ,并修复所有问题)
  • 手动应用您的
    !使数据库处于应用
    5.sql
    后的状态
  • 进入数据库,找到名为
    play\u evolutions
    ,并查看id为
    6
    的行。它应该在
    状态
    列中显示类似
    应用ups
    的内容,并在
    最后一个问题
    列中显示错误消息
  • 删除id为
    6
    的行。这将使Play认为您处于使用
    5.sql时的状态
  • 现在,您应该能够运行
    play-DapplyEvolutions.default=true start
    来发展到
    6.sql

  • 你确定吗?这对我来说毫无意义。对我来说,“不一致状态”意味着“不一致状态”,即仅执行了部分进化(sql脚本),playframework无法撤消或完成进化,因此需要手动干预,小心地将进化恢复或完成到一致状态。