我正在开发一个带有 Play 框架的项目,它使用 EBean 作为 ORM API,我想知道如果在向公众发布我的应用程序后需要更改模型,我该如何保留旧数据?因为每次更新后都会创建一个新的卷积并重置数据。
问问题
238 次
1 回答
2
Play 2.x 中的 Ebean 插件总是删除完整的结构并重新创建它 - 这会导致丢失数据。不支持仅更新更改的元素(根本,即使在纯 Ebean 中)请参阅他们论坛上的帖子。
唯一的解决方法是禁用它并手动创建下一个演变(2.sql、3.sql 等),并将仅更改/添加的表和列放入其中。然后在文件 1.sql 文件中删除前两行(这表明它是用插件创建的) - 在这种情况下,它不会尝试再次生成整个 DDL,而是会寻找您的手动进化。
或者,您可以使用您最喜欢的 GUI 来管理数据库的更改,有时它会更快。
要完全禁用 Ebean 插件,请在您的application.conf
:
evolutionplugin=disabled
于 2013-04-27T12:09:34.907 回答