Django Migrations - Зависимости ссылаются на несуществующий родительский узел - PullRequest
0 голосов
/ 07 ноября 2018

В отличие от обычной миграции, это другая. Я удалил весь проект и базу данных. Использовал базовый проект Django без приложения. Ошибка всегда указывает на мои старые миграции. Чтобы убедиться, что я использовал SQL lite по умолчанию.

Шаги приводят к этой ошибке: я пытался добавить столбцы в модель группы, используя методы add_to_class и contrib_to_class, в процессе этого я потерял отслеживание миграции.

Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x000001E7701610D0>
  Traceback (most recent call last):
    File "E:\Python_365\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
      fn(*args, **kwargs)
    File "E:\Python_365\lib\site-packages\django\core\management\commands\runserver.py", line 123, in inner_run
      self.check_migrations()
    File "E:\Python_365\lib\site-packages\django\core\management\base.py", line 427, in check_migrations
      executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
    File "E:\Python_365\lib\site-packages\django\db\migrations\executor.py", line 18, in __init__
      self.loader = MigrationLoader(self.connection)
    File "E:\Python_365\lib\site-packages\django\db\migrations\loader.py", line 49, in __init__
      self.build_graph()
    File "E:\Python_365\lib\site-packages\django\db\migrations\loader.py", line 267, in build_graph
      raise exc
    File "E:\Python_365\lib\site-packages\django\db\migrations\loader.py", line 241, in build_graph
      self.graph.validate_consistency()
    File "E:\Python_365\lib\site-packages\django\db\migrations\graph.py", line 243, in validate_consistency
      [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
    File "E:\Python_365\lib\site-packages\django\db\migrations\graph.py", line 243, in <listcomp>
      [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
    File "E:\Python_365\lib\site-packages\django\db\migrations\graph.py", line 96, in raise_error
      raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
  django.db.migrations.exceptions.NodeNotFoundError: Migration auth.0022_group_openid dependencies reference nonexistent parent node ('Task', '0003_auto_20181107_1811')

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

1 Ответ

0 голосов
/ 07 ноября 2018

Похоже, файл миграции 0022_group_openid находится в установке django, а не в вашем проекте, и что вы используете одну и ту же установку для нескольких проектов. Вы можете удалить дополнительные файлы миграции вручную. Рекомендуется использовать разные virtualenv для каждого проекта и устанавливать там Django.

Возможно, вы захотите взглянуть на настройки MIGRATION_MODULES. Это позволит вам поместить миграции для django.contrib.auth в ваш проект, чтобы вы могли держать их под контролем версий.

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

...