在git分支之间维护数据库表字段的最佳方法是什么?

时间:2018-07-26 07:10:49

标签: django git postgresql

我正在使用Django和Postgresql开发Web服务。

假设我们有3〜4个分支,用于不同的功能或旧版本的错误修正。

然后,当我在A分支中并更改Django模型并运行Migration更改本地测试桌面中的数据库时,我遇到了一个问题。

当我切换到没有迁移文件的另一个分支时,尝试运行django时数据库将不一致并且无法正常工作,我必须删除数据库并重新创建它。

总的来说,处理此类对开发人员环境的需求的最佳/通用方法是什么?

4 个答案:

答案 0 :(得分:2)

我很了解您的情况,并且多次穿同一双鞋。

这是我更喜欢的(/ do):

  1. 我在分支bug-fix/surname_degrade中 我更改了用户数据模型[生成了user_migration_005],然后迁移了数据库。 然后我的老板来指出用户由于登录质量下降而无法登录。

  2. 所以我必须先切换分支并修复它。

  3. 我可以回滚迁移[user_migration_005],我已经做了几分钟。像这样python manage.py migrate user_migration_004

  4. 切换分支并开始在hot-fix/login_degrade

  5. 上工作
  6. 当我切换回上一个任务时,我可以进行迁移并继续。

通过此过程,我不需要删除所有表或恢复旧数据库或类似的东西。

我是新手,很高兴听到您的想法。

答案 1 :(得分:1)

这里的主要问题是,每次迁移时数据库都会更改,因此可以在不同分支之间保持数据库的一致性,或者可以在使用/测试(声明所有模型后)时做一件事。
1)删除所有数据库表(如果您有备份或虚拟数据
2)删除分支中所有现有的迁移文件
3)创建新的迁移
4)迁移到新的迁移
如果对模型进行了修改,则也可以执行上述步骤,修改后只需重复这些步骤即可。

答案 2 :(得分:1)

在每个分支中运行不同的测试数据库。

创建设计时,创建数据库

克隆数据库并进行迁移。

答案 3 :(得分:0)

请确保在您推送至git时包括迁移,并等待其他人拉该分支并进行migrate django知道对数据库进行了哪些更改。