1

在 play 1.0 中,当我们更改变量类型或例如在模型中从 @OneToMany 更改为 @ManyToMany 时,会自动处理更改,但使用 play 2.0 进化脚本会删除数据库。有什么方法可以让 Play 2.0 在不删除数据库的情况下应用更改?

4

1 回答 1

2

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

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

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

于 2012-11-01T21:20:37.917 回答