Play Framework 2.0中的数据库演进

时间:2012-11-01 19:02:03

标签: sql playframework playframework-2.0

当我们更改变量类型或者例如在模型游戏中从@OneToMany更改为@ManyToMany时,在播放1.0中自动处理更改但使用play 2.0 evolution脚本删除数据库。有没有办法让Play 2.0在不丢弃数据库的情况下应用更改?

1 个答案:

答案 0 :(得分:2)

是的,有办法。您需要停用1.sql文件的自动重新创建,并开始编写包含ALTERS而非CREATES的自己的演变 - 使用2.sql3.sql等对其进行编号

在实践中,这意味着,如果您正在使用单个数据库,您还可以使用您喜欢的数据库GUI管理数据库的表和列。只有当您不能使用GUI(主机不允许外部连接并且没有任何GUI)或者您计划在不同的数据库上运行应用程序的许多实例时,这些演变才有用。否则手动编写语句可能比使用GUI更复杂。

提示:有时,如果我不确定是否将所有必需的关系和约束添加到我的手动演变中,我将其删除(在git控制文件夹下!)并运行启用了Ebean插件的应用程序,保存提议的1.sql,但我没有应用更改。稍后使用git我将恢复我的演进,并将保存的自动生成的文件和convert CREATE语句与ALTER进行比较。在不使用第三方软件的情况下管理变更没有更好的选择。