1

我刚刚添加了一个 SQL 文件,以便在我的数据库中创建一个新表到我的进化脚本中。不小心,我的 SQL 脚本中有错字。然后我通过配置设置的激活器启动了我的 Play webapp applyEvolutions.default=true。因此,当我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 版本。

4

1 回答 1

2

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

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

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

Play 会检测到这种新的演变来取代之前的演变,并将运行适当的脚本。现在一切都已解决,您可以继续工作。

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

于 2016-08-06T09:34:03.520 回答