1

传统观点似乎是数据库迁移应该保存在 VCS 中——这样就可以记录数据库经历的所有更改。

但...

旧迁移有什么用?我真的不认为自己会恢复到旧版本的 db。将它们排除在 VCS 之外并在每台机器上创建一个不必与其他所有人的迁移队列保持同步的迁移队列不是更容易吗?

4

2 回答 2

2

如果您认为保留旧迁移是浪费,那么您就不了解迁移。迁移允许您回滚更改。您可能无法想象这样做,但它可能是必要的。完整的迁移历史允许协作团队保持同步,而不管他们开始时可能拥有的版本。

扔垃圾和重新开始是你在南方能做的最糟糕的事情之一。除非您明确告诉所有人进入并清除 south_migrationhistory 表并删除所有现有迁移并创建新的 init 迁移,否则您完全搞砸了其他开发人员。

简而言之。将迁移留在 VCS 中,这是它们所属的地方,以便从任何时候进入项目的任何人都可以快速将他们的数据库迁移到当前版本。不要清理它们,它们不会伤害任何东西,这样做会给其他合作者带来麻烦。

于 2012-04-19T20:15:05.630 回答
1

我认为你是对的,保留旧迁移几乎没有用,即使它们没有害处我也不喜欢我的项目中未使用的代码。

虽然在开发过程中使用像 south 这样的迁移系统有很大帮助,但您可能不需要关于合并功能/更改的旧模式迁移(如果您仍然在 VCS 上可用的 python 代码中更改模型)。

有时我会在一个初始迁移中做垃圾并重新创建所有迁移,然后重新开始收集新的迁移。

将迁移保持在 VCS 之外并不是一个好主意,如果它不会引入问题,它肯定会减慢开发速度。

编辑:由于清理过程涉及团队了解这种重组(并清除迁移历史表),因此当您无法轻松接触到所有开发人员/用户时,不建议这样做。

于 2012-04-19T19:18:55.583 回答