gpt4 book ai didi

java - 如何在生产中处理 Play Framework 2 数据库演进

转载 作者:太空狗 更新时间:2023-10-29 22:42:52 25 4
gpt4 key购买 nike

似乎每当我更改我的模型时,Play Framework 都会要求我运行一个脚本来删除我的整个模式并重新创建它。显然这不适用于生产,那么在生产中处理此问题的正确方法是什么?

请注意,我使用的是 ebean 和 Postgres,并托管在 heroku 上。

最佳答案

不幸的是 Ebean 只能创建 CREATE DDL(而不是 UPDATE DDL)(如 answered on their group ),因此您需要切换到manual evolutions尽快。

一些规则:

  1. 在实现任何更改之前始终备份您的实时数据库 :)
  2. ebean 插件重新创建整个 DDL,如果它只有 1.sql 由它创建的演进
  3. 您需要从 1.sql 中删除前两个注释,然后开始使用下一个数字编写自己的演进 2.sql3.sql 等。在切换到手动进化之前,尝试放置尽可能多的模型/字段。大部分将由插件自动完成。
  4. 手动演化应该包含对现有表/列的 ALTERS 而不是 DROP/CREATE,它们应该同时包含:UpsDowns改变。
  5. 尝试在每个演进中放置尽可能多的更改,这样管理起来会更容易,然后为每个小更改编写单独的演进。

事实上,有时使用 DB gui 修改 DB 结构更容易,无论如何它主要为单个开发人员工作......当您需要与其他开发人员共享您的代码时,编写 evolutions 将是更好的选择。

如果一段时间后您将添加新模型的下一个“大”部分,您可以再次启用临时自动 DDL 并使用本地 git 来复制新部分。然后恢复自己的革命并粘贴由 Ebean 插件生成的新部分。

关于java - 如何在生产中处理 Play Framework 2 数据库演进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14616005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com