首页 > 解决方案 > 升级到 DJango 2 时 migrations/0001_initial.py 中的错误:migrations/0001_initial.py

问题描述

我最近从 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在我的测试环境中运行时,我没有收到任何警告或错误。它在我的测试环境中也没有问题。

标签: djangoupgradedjango-migrations

解决方案


只需添加您ForeignKey的位置;

models.ForeignKey(Reporter, on_delete=models.CASCADE)

您可以查看此内容以获取更多选项。 https://docs.djangoproject.com/en/2.1/ref/models/fields/#arguments

希望能帮助到你。


推荐阅读