应该将南迁移文件添加到源代码管理中吗?

Ift*_*tah 17 django version-control django-south

我想知道什么是与多个开发人员一起使用South的"最佳"方式.

是否应跟踪迁移文件?当两个开发人员对同一来源的models.py进行不同的更改时,问题就会出现.

如果跟踪迁移文件:

  1. 很难注意到需要合并,因为它们是由不同的文件名组成的.
  2. 反正很难合并.
  3. 难以应用(需要向后迁移一次迁移,合并,再次向前迁移)

如果没有跟踪它们:

  1. 无法共享调整迁移.
  2. 开发人员需要在模型文件的更改(而不是仅仅应用它)时创建迁移(并应用它).

我错过了更多优点/缺点吗?最好的方式是什么?我目前正在使用跟踪迁移,但考虑改为未跟踪,似乎更简单.

谢谢.

bra*_*ers 20

绝对应该将它们添加到源代码管理中.您需要手动(口头?)协调模型的更改以避免冲突.如果您没有在源代码管理中包含迁移,那么其他开发人员将无法迁移其数据库(这实际上无法迁移).

  • 我应该更深入地学习RTFM,该教程将在第5章[http://south.aeracode.org/docs/tutorial/part5.html#team-workflow]中讨论协作.为了我的辩护,文档中有一个错误,当阅读第4章时,"下一章"跳过第5章.教程明确建议跟踪迁移文件,所以我接受这个答案,但建议未来的读者检查一下教程说到这一点. (11认同)
  • 只要您只允许--auto创建的迁移(即没有调整),那么其他开发人员可以在本地创建所需的迁移.在合并models.py文件之后,两个开发人员将拥有相同的数据库模式,只是不同的集合和不同的迁移顺序.只要使用--auto migrations,我就不会发现问题. (2认同)