迁移期间的 Django NodeNotFoundError

Django NodeNotFoundError during migration

当我尝试为我的 django 应用程序 runserver 时得到的 error 如下:

django.db.migrations.graph.NodeNotFoundError: Migration tasks.0001_initial dependencies reference nonexistent parent node (u'auth', u'0007_alter_validators_add_error_messages')

这是在我学习了这个 heroku 教程之后发生的:https://devcenter.heroku.com/articles/getting-started-with-django

我修改了设置文件以包括:

import dj_database_url
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

#DATABASES['default'] =  dj_database_url.config()
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'tasks/static'),
)

我的0001_initial迁移如下:

from __future__ import unicode_literals

from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('auth', '0007_alter_validators_add_error_messages'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

我不知道下一步应该尝试什么来修复这个错误。建议赞赏!谢谢!

您的错误表明 tasks 应用程序有一个无法找到的迁移。

这意味着,您在 INSTALLED_APPS 中缺少一些应用程序 - 很可能您在此列表中没有 'django.contrib.auth'。

首先我建议你升级你的 django

pip install --upgrade django

如果这对您没有帮助,请尝试以下操作:

  • 删除模态框的新变化 运行 -- python manage.py migrate --fake
  • 现在再次用新的变化修改你的模型 运行 -- python manage.py makemigrations
  • 然后又是运行 -- python manage.py migrate

您的迁移依赖于另一个显然不存在的应用 () 中的迁移。如果您在 'auth' 应用程序中删除或 moved/consolidation 迁移,这可能就是原因。如果您从此迁移中删除有问题的迁移,只需确保 auth 包中“0007”迁移的更改(检查您的源代码修订历史记录)已经应用于您当前的数据库,并且您应该可以继续而无需明确移民。我还会考虑检查您的项目中是否有任何其他应用程序依赖于 'auth' 中丢失的迁移。干杯。

(u'auth', u'0007_alter_validators_add_error_messages')

它对我有用pip install --upgrade django

我在安装新软件包时遇到了同样的错误,这也将我的 Django 降级到版本 1.8.16

pip install --upgrade django 安装回 1.10.3 版本(自从我开始我的项目以来我一直在使用它)并解决了问题。