我正在使用Django和Postgresql开发Web服务。
假设我们有3〜4个分支,用于不同的功能或旧版本的错误修正。
然后,当我在A分支中并更改Django模型并运行Migration更改本地测试桌面中的数据库时,我遇到了一个问题。
当我切换到没有迁移文件的另一个分支时,尝试运行django时数据库将不一致并且无法正常工作,我必须删除数据库并重新创建它。
总的来说,处理此类对开发人员环境的需求的最佳/通用方法是什么?
答案 0 :(得分:2)
我很了解您的情况,并且多次穿同一双鞋。
这是我更喜欢的(/ do):
我在分支bug-fix/surname_degrade
中
我更改了用户数据模型[生成了user_migration_005
],然后迁移了数据库。
然后我的老板来指出用户由于登录质量下降而无法登录。
所以我必须先切换分支并修复它。
我可以回滚迁移[user_migration_005
],我已经做了几分钟。像这样python manage.py migrate user_migration_004
切换分支并开始在hot-fix/login_degrade
当我切换回上一个任务时,我可以进行迁移并继续。
通过此过程,我不需要删除所有表或恢复旧数据库或类似的东西。
我是新手,很高兴听到您的想法。
答案 1 :(得分:1)
这里的主要问题是,每次迁移时数据库都会更改,因此可以在不同分支之间保持数据库的一致性,或者可以在使用/测试(声明所有模型后)时做一件事。
1)删除所有数据库表(如果您有备份或虚拟数据)
2)删除分支中所有现有的迁移文件
3)创建新的迁移
4)迁移到新的迁移
如果对模型进行了修改,则也可以执行上述步骤,修改后只需重复这些步骤即可。
答案 2 :(得分:1)
在每个分支中运行不同的测试数据库。
创建设计时,创建数据库
克隆数据库并进行迁移。
答案 3 :(得分:0)
请确保在您推送至git时包括迁移,并等待其他人拉该分支并进行migrate
django知道对数据库进行了哪些更改。