我刚刚添加了一个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版本。
答案 0 :(得分:0)
我发现我的问题的答案已经存在于官方文档中:
在数据库上运行fixed SQL命令,然后标记此问题 通过单击按钮手动解决。
但是因为你的进化脚本有错误,你可能想修复 它。所以你修改了sql evolutions脚本。
Play会检测到这个取代前一个进化的新进化,并且 将运行适当的脚本。现在一切都已修复,你可以 继续工作。
https://www.playframework.com/documentation/2.5.x/Evolutions#inconsistent-states