【发布时间】:2018-12-16 22:58:27
【问题描述】:
我最近从 Django 1.11 升级到 2.1
这在两个不同的测试环境中运行良好,但是当我尝试将更改应用到我的生产环境时,我在尝试进行迁移时收到错误:
$ ./src/manage.py makemigrations
Traceback (most recent call last):
File "./src/manage.py", line 11, in <module>
execute_from_command_line(sys.argv)
...
File "/home/90158/hackerspace/src/quest_manager/migrations/0001_initial.py", line 69, in Migration
('quest', models.ForeignKey(to='quest_manager.Quest')),
TypeError: __init__() missing 1 required positional argument: 'on_delete'
当然,我需要做的许多更改是将on_delete 添加到我的 ForeignKeys,但我的测试环境都没有出现此迁移错误!
编辑:
当我在我的测试环境中运行python -Wa src/manage.py test 时,我没有收到任何警告或错误。它在我的测试环境中迁移也没有问题。
【问题讨论】:
-
为什么在生产环境中运行
makemigrations?您应该在进行更改时在本地执行此操作,然后合并到 dev/staging 并合并到生产中。您可以将模型添加到您的问题中吗? -
这听起来超出了我目前的业余能力。你能推荐一个资源让我了解这个工作流程吗?
-
听起来你需要看看 git & 实现一些版本控制; nvie.com/posts/a-successful-git-branching-model
标签: django upgrade django-migrations