Scala play framework 2.0演进,如何将不一致状态标记为PROD中已解决
我有一个用scala play2.0开发的应用程序, 它在本地运行成功,但在部署到heroku时失败 失败的原因是我在本地使用了一个H2数据库, 在heroku中使用postgresql,我必须将其中一种数据类型从“clob”更改为“text” 根据play20文档,现在的问题是heroku中的数据库处于“不一致状态”。 在开发模式下(本地),当html出现时,您只需单击“将其标记为已解决” 如何在heroku PROD环境中“标记并请求解决”? 注意,因为这是一个新的应用程序,我刚刚删除了数据库并重新启动。 然而,这里我要问的是,在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环境中“标记并请求解决”? 注意,因为这是一个新的应用程序,我刚刚删除了数
也就是说,这里没有解释PROD的“将其标记为已解决”问题:不一致状态只是意味着无法应用演进,因此应用程序被阻止。更新您的进化脚本并重新部署 虽然我找不到通过
play
命令执行的方法,但您可以通过直接编辑数据库来执行
假设您正试图从5.sql
转换到6.sql
。以下是您要做的:
!Ups
,并修复所有问题)!使数据库处于应用5.sql
后的状态
play\u evolutions
,并查看id为6
的行。它应该在状态
列中显示类似应用ups
的内容,并在最后一个问题
列中显示错误消息6
的行。这将使Play认为您处于使用5.sql时的状态
play-DapplyEvolutions.default=true start
来发展到6.sql
你确定吗?这对我来说毫无意义。对我来说,“不一致状态”意味着“不一致状态”,即仅执行了部分进化(sql脚本),playframework无法撤消或完成进化,因此需要手动干预,小心地将进化恢复或完成到一致状态。