似乎每当我更改模型时,Play Framework都会要求我运行一个脚本,该脚本删除我的整个架构并重新创建它。显然,这不适用于生产,那么在生产中处理此问题的正确方法是什么?
注意,我正在使用ebean和Postgres,并在heroku上托管。
最佳答案
不幸的是Ebean
只能创建CREATE DDL
(而不是UPDATE DDL
)(作为answered on their group),因此您需要尽快切换到manual evolutions。
一些规则:
1.sql
演变,则会重新创建整个DDL。1.sql
中删除两个第一条注释,并开始用下一个数字2.sql
,3.sql
等编写自己的演化。在切换到手动演化之前,尝试放置尽可能多的模型/字段。大部分将由插件自动完成。 ALTERS
而不是DROP/CREATE,它们应同时具有:每次更改的Ups
和Downs
。 实际上,有时使用DB gui修改DB结构会更容易,无论如何它主要适用于单个开发人员...当您需要与其他开发人员共享代码时,编写演化版本将是更好的选择。
如果一段时间后,您将添加新模型的下一个“大”部分,则可以再次启用临时自动DDL,并使用本地git来复制新零件。然后恢复到自己的革命,并粘贴由Ebean插件生成的新零件。
关于java - 如何在生产中处理Play Framework 2数据库的演变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14616005/