Django迁移应该在源代码管理中吗?

时间:2015-05-12 15:45:39

标签: django

正如标题所说......我不确定Django migrations是否应该存在于源代码管理中。

有关:

  • 如果他们被意外地从我的本地计算机上删除了,那么下次我想要运行迁移时会出现问题...对吗?因此,拥有它们对我有用。

反对:

  • Devs首次设置项目不应该运行它们,它们可以直接从模型文件中工作。
  • 它们看起来像机器特定的残骸。
  • 他们是否可能会透露我不想要的关于数据库的内容?

1 个答案:

答案 0 :(得分:22)

是的,绝对!!

来自docs

  

每个应用程序的迁移文件都位于该应用程序内部的“迁移”目录中,旨在提交给代码库并作为其代码库的一部分进行分发。您应该在开发计算机上进行一次,然后在同事的计算机,临时计算机以及最终的生产计算机上运行相同的迁移。

一个重点是迁移应始终在生产中部署之前进行测试。您永远不应该在生产中创建迁移,只应用它们。

您还希望将源代码管理中的模型状态与数据库的状态同步。如果某人拉动您的分支,必须找到错误,并返回源代码控制的历史记录,他需要迁移文件来更改数据库的状态以匹配该时间点。如果他必须创建自己的迁移文件,他们不会包含中间状态,并且他遇到了他的模型与数据库不同步的问题。