Подтвердить что ты не робот

Django NodeNotFoundError во время миграции

error Я получаю, когда пытаюсь runserver для моего приложения django:

django.db.migrations.graph.NodeNotFoundError: задачи миграции. 0001_initial dependencies reference несуществующий родительский node (u'auth ', u'0007_alter_validators_add_error_messages')

Это произошло после того, как я последовал этому руководству по герою: 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),
    ]

Я потерял то, что я должен попробовать, чтобы исправить эту ошибку. Советы оценили! Спасибо!

4b9b3361

Ответ 1

у вашей миграции есть зависимость от миграции в другом приложении(), которая, по-видимому, не существует. если вы удалили или переместили/консолидировали миграцию в приложении "auth", возможно, поэтому. если вы удалите перенаправляющий миграцию из этой миграции, просто убедитесь, что изменения из миграции "0007" в пакете auth (проверьте историю изменений исходного кода) уже были применены к вашей текущей базе данных, и вы должны быть в порядке, чтобы продолжить без этого явного миграция. я также хотел бы проверить, зависят ли какие-либо другие приложения в вашем проекте от недостающих миграций от "auth". веселит.

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

Ответ 2

Ваша ошибка указывает, что приложение tasks имеет миграцию, которая не может быть найдена.

Это означает, что вам не хватает некоторых приложений в INSTALLED_APPS - скорее всего, у вас нет "django.contrib.auth" в этом списке.

Ответ 3

Сначала я предлагаю вам обновить django

pip install --upgrade django

Если это вам не поможет, попробуйте следующее:

  • Удалите новые изменения из модалов и запустите - python manage.py migrate --fake
  • Теперь снова измените свои модели с новыми изменениями и запустите - python manage.py makemigrations
  • И снова запустите - python manage.py migrate

Ответ 4

Он работал у меня с pip install --upgrade django

Я получил ту же ошибку при установке нового пакета, который также понизил мой Django до версии 1.8.16

pip install --upgrade django установил обратно версию 1.10.3 (с которой я работал с самого начала с моего проекта), и это решило проблему.