1

我最近开始在一个项目中使用 Play2,并阅读了关于evolutions的部分。1.sql虽然如果我的项目有 1 个表,他们引用的示例似乎很好,但如果我有 10-20 个表,然后对它们进行更改拆分,则似乎会非常混乱2.sql3.sql依此类推。

在 Ruby on Rails、Symfony 等中,您可以定义每个实体的上/下迁移。

我的问题是,在 Play2 中设置进化的最佳方式是什么?我应该把所有的桌子都放进去1.sql,然后再对它们做些小改动2.sql等等吗?或者有没有办法.sql为每个表创建一个单独的文件?

此外,是否有任何大型开源 Play2 项目的示例,我可以看到它的外观?

4

1 回答 1

1

实际上 Play 不可能按实体划分进化。

恕我直言,这是一个品味问题,您可以在单个下一次进化中添加每个实体,无论如何唯一的区别是进化的计数器会更大,我认为这不会帮助您保持进化的清洁。

典型的工作流程是从……良好的计划开始。只需为您的架构创建一些图形表示,然后尝试在其中添加所需的任意数量的内容。它在项目启动以及后续开发步骤中都有很大帮助。

如果你打算使用 Ebean,从你的图创建所有模型,并让插件自动创建第一个进化文件,可能你会节省很多时间来编写关系、约束等的进化。花一些时间来修复和检查进一步开发之前的初始模式。

之后,您需要禁用自动更新,因为它们会删除整个数据库并从头开始重新创建表(Ebean 中没有差异模式更新)。

这也是品味问题,但我更喜欢将几个更改组合成单个演变(所以再次计划......),而不是为每一个临时更改创建下一个和下一个文件。

于 2013-06-24T06:33:17.403 回答