如何处理 Play Framework 2 数据库在生产环境中的演变
2022-09-03 03:53:03
似乎每当我更改模型时,Play Framework 都会要求我运行一个脚本,该脚本会删除我的整个架构并重新创建它。显然,这不适用于生产,那么在生产中处理这个问题的正确方法是什么?
请注意,我正在使用ebean和Postgres,并在heroku上托管。
似乎每当我更改模型时,Play Framework 都会要求我运行一个脚本,该脚本会删除我的整个架构并重新创建它。显然,这不适用于生产,那么在生产中处理这个问题的正确方法是什么?
请注意,我正在使用ebean和Postgres,并在heroku上托管。
不幸的是,只能创建(而不是)(正如他们的组所回答的那样),因此您需要尽快切换到手动进化。Ebean
CREATE DDL
UPDATE DDL
一些规则:
1.sql
1.sql
2.sql
3.sql
ALTERS
Ups
Downs
事实上,有时使用DB GUI修改DB结构更容易,无论如何,它主要适用于单个开发人员...当你需要与其他开发人员分享你的代码时,编写进化将是更好的选择。
如果一段时间后,您将添加新模型的下一个“大”部分,则可以再次启用临时自动DDL,并使用本地git来复制新部分。然后恢复到自己的革命并粘贴由Ebean插件生成的新部件。
Biesior基本上总结得很好。但是,作为游戏的初学者,我发现通过具体示例进行更多的澄清可能会有所帮助。
首先,以下示例适用于 Java。
假设您添加了一个新字段
public String dum_str;
在您的模型中 Dum。然后,您将需要一个如下所示的under:2.sql
conf/evolutions/
# --- !Ups
ALTER TABLE dum ADD COLUMN dum_str VARCHAR(255);
# --- !Downs
ALTER TABLE dum DROP dum_str;
我希望这将是有帮助的。