Play Framework:如何纠正Evolution脚本中的SQL语法错误?

时间:2016-08-05 13:53:38

标签: mysql playframework slick typesafe-activator playframework-evolutions

我刚刚添加了一个SQL文件,在我的数据库中为我的进化脚本创建一个新表。不小心,我的SQL脚本中有一个拼写错误。然后我通过配置设置applyEvolutions.default=true的激活器启动了我的Play webapp。因此,当我run我的webapp时,它会因SQL语法错误和数据库不一致而抱怨。

我更正了语法错误,但不知怎的Play / Evolutions / Activator没有考虑我的更正。它仍然希望执行我的SQL脚本的错误和未修正版本。这很明显,因为它引用了我未修正版本的语法错误。如何让Play接受我更正的SQL脚本?

此外,Play会出现以下错误消息:

play.api.db.evolutions.InconsistentDatabase: 
Database 'default' is in an inconsistent state!
[An evolution has not been applied properly.

我使用最新的Play,Evolution和MySQL版本。

1 个答案:

答案 0 :(得分:0)

我发现我的问题的答案已经存在于官方文档中:

  

在数据库上运行fixed SQL命令,然后标记此问题   通过单击按钮手动解决。

     

但是因为你的进化脚本有错误,你可能想修复   它。所以你修改了sql evolutions脚本。

     

Play会检测到这个取代前一个进化的新进化,并且   将运行适当的脚本。现在一切都已修复,你可以   继续工作。

https://www.playframework.com/documentation/2.5.x/Evolutions#inconsistent-states