迁移期间的 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 版本(自从我开始我的项目以来我一直在使用它)并解决了问题。
当我尝试为我的 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 版本(自从我开始我的项目以来我一直在使用它)并解决了问题。