如何使用git跟踪Django模型的变化?

时间:2015-06-05 14:51:17

标签: python sql django git workflow

假设您编写了一个Django网站并使用git来管理源代码。您的网站有各种各样的实例(至少每个开发者一个)。

当您在提交中对模型执行更改时,每个人都需要更新自己的数据库。在某些情况下,运行python manage.py migrate就足够了,在其他一些情况下,您需要运行一些自定义SQL查询和/或运行一些Python代码来更新各个位置的值。

如何实现自动化?是否有一种干净的方式来捆绑这些"模型更新" (例如,在相关提交中执行相应操作的小shell脚本)?我已经考虑过使用git hooks了,但是随着时间的推移,运行的代码会发生变化,我不清楚如何将它们用于此目的。

4 个答案:

答案 0 :(得分:4)

All changes to models should be in migrations. If you "need to run a few custom SQL queries and/or run some Python code to update values" then those are migrations too, and should be written in a migration file.

答案 1 :(得分:1)

如果您跟踪/migrations,则可以按照doc

中的说明创建/修改迁移文件

这样,同事只需运行migrate即可执行查询

答案 2 :(得分:1)

您应该跟踪迁移。你唯一需要留意的是分支合并。如果每个人都使用功能分支并在其分支上进行开发,则在集成分支后应用更改。此时(拉取请求时间或集成时间),您需要确保迁移有意义,如果没有修复它们。

答案 3 :(得分:0)

您应该看到任何数据库重构工具,例如liquibase,以便您可以控制数据库更改。这是python的wrapper