play framework 2.0 evolution,如何在PROD中标记一个不一致的状态

Dav*_*lla 3 scala heroku playframework-2.0

我有一个在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

cdm*_*kay 5

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

想象一下,你正试图从去5.sql6.sql.这是你做的:

  1. 找出并解决导致数据库进入不一致状态的问题(即手动应用!Ups并解决所有问题).
  2. 手动应用您!Downs的数据库,使其处于5.sql应用之后的状态.
  3. 进入数据库,找到调用的表play_evolutions,然后查看带有id的行6.它应该applying upsstate列中说出类似的内容并在列中显示错误消息last_problem.
  4. 删除id为的行6.这将使Play认为你处于你所处的状态5.sql.
  5. 现在你应该能够play -DapplyEvolutions.default=true start继续发展6.sql.