我正在使用Play框架开发项目,它使用EBean作为ORM API,我想知道如果我需要在向公众推出应用程序后更改模型,我如何保留旧数据? 因为每次更新后都会创建一个新的卷积并重置数据。
答案 0 :(得分:2)
Play 2.x中的Ebean插件总是会丢弃完整的结构并重新创建它 - 这会导致数据丢失。不支持仅更新已更改的元素(即使在纯Ebean中也是如此)see post at their forum。
只有解决方法是禁用它并手动创建下一个演进(2.sql,3.sql等)并仅在其中放置已更改/添加的表和列。然后在文件1.sql文件中删除两个第一行(告诉它是用插件创建的) - 在这种情况下,它不会再尝试生成整个DDL,而是会查找您的手动演变。
您可以选择使用您的favit GUI来管理数据库的更改,有时它只是更快。
要禁用Ebean插件,请在application.conf
中完全添加(或取消注释)此行:
evolutionplugin=disabled