web-dev-qa-db-ja.com

Django:依存関係が存在しない親ノードを参照する

次のコマンドを実行すると

python manage.py migrate

Djangoからこのエラーを受け取るので、私の練習を進めることはできません:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/core/management/commands/migrate.py", line 63, in handle
    executor = MigrationExecutor(connection, self.migration_progress_callback)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/db/migrations/executor.py", line 17, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/db/migrations/loader.py", line 48, in __init__
    self.build_graph()
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/db/migrations/loader.py", line 241, in build_graph
    self.graph.add_dependency(migration, key, parent)
  File "/home/nikhil/testWeb-devEnv/local/lib/python2.7/site-packages/Django/db/migrations/graph.py", line 42, in add_dependency
    raise KeyError("Migration %s dependencies reference nonexistent parent node %r" % (migration, parent))
KeyError: u"Migration testBolt.0001_initial dependencies reference nonexistent parent node (u'delivery_boy', u'0004_auto_20150221_2011')"

この問題を解決するにはどうすればよいですか?

27
NIKHIL RANE

ソリューション-1

移行フォルダーからpycファイルを削除します。

ソリューション-2

移行ファイルを編集して、testBolt.0001_initialからその参照を削除する必要があります。

ソリューション-

  1. モーダルから新しい変更を削除し、python manage.py migrate --fakeを実行します

  2. 新しい変更でモデルを再度修正します

  3. python manage.py makemigrationsを実行します

  4. そして再びpython manage.py migrateを実行します

17
NIKHIL RANE

仮想環境のウィンドウでDjango=を実行すると、同様のケースがありました。私の場合、欠落している依存関係は0001_initialでした。これは間違いなく移行フォルダーにありました。

「解決策」は、pycファイルを削除して、別の移行を試みることでした。

4
Jeremias B

同じ問題がありました。私の場合、移行を手動で操作したため、__init__.pymigrationsフォルダー内。

4
TitanFighter

私の場合、依存モジュール名に次のような.py拡張がありました。

dependencies = [
    ('dashboard', '0003_auto_20181024_0603.py'),
    ('auth', '__latest__'),
    ('contenttypes', '__latest__'),
]

.pyを削除して、これに変更しました

    ('dashboard', '0003_auto_20181024_0603')

そしてそれはそれを修正しました。

3
Christian Long

仮想環境をアクティブにしていることを確認してください。

2
Dawn T Cherian
KeyError: u"Migration testBolt.0001_initial dependencies reference nonexistent parent node (u'delivery_boy', u'0004_auto_20150221_2011')"

削除する

testBolt.0001_initial

その後、再度移行を実行します

2
HoangYell

以下のソリューションを紹介します。

1

pip3 install Django==2.2 --user

2

python manage.py runserver

これで終わりです。少なくとも2.2以上のバージョンではDjangoを使用したいかもしれません。コマンドを入力した後、同じエラーを修正しました(内容の一部が異なります)。

Performing system checks...

System check identified no issues (0 silenced).
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0000029C0D0D3EA0>
Traceback (most recent call last):
  File "C:\Users\hogeuser\AppData\Roaming\Python\Python36\site-packages\Django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\hogeuser\AppData\Roaming\Python\Python36\site-packages\Django\core\management\commands\runserver.py", line 120, in inner_run
    self.check_migrations()
  File "C:\Users\hogeuser\AppData\Roaming\Python\Python36\site-packages\Django\core\management\base.py", line 442, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "C:\Users\hogeuser\AppData\Roaming\Python\Python36\site-packages\Django\db\migrations\executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "C:\Users\hogeuser\AppData\Roaming\Python\Python36\site-packages\Django\db\migrations\loader.py", line 49, in __init__
    self.build_graph()
  File "C:\Users\hogeuser\AppData\Roaming\Python\Python36\site-packages\Django\db\migrations\loader.py", line 273, in build_graph
    raise exc
  File "C:\Users\hogeuser\AppData\Roaming\Python\Python36\site-packages\Django\db\migrations\loader.py", line 247, in build_graph
    self.graph.validate_consistency()
  File "C:\Users\hogeuser\AppData\Roaming\Python\Python36\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 "C:\Users\hogeuser\AppData\Roaming\Python\Python36\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 "C:\Users\hogeuser\AppData\Roaming\Python\Python36\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 app.0001_initial dependencies reference nonexistent parent node ('auth', '0011_update_proxy_permissions')
0
KENOSIN

幸運にもNIKHILのソリューションを試しました。私のために働いたのは:

  • 仮想環境の削除
  • 移行の削除__pycache__フォルダ
  • 古い移行の削除
  • 仮想環境の再作成
  • 移行の実行
0
Programmingjoe

これは私のために働くあなたのアプリの移行フォルダで

  1. アプリフォルダー内のすべてのファイルpycを削除します(__init__
  2. 移行内のすべてのファイルを削除します(__init__

  3. python manage.py makemigrations

  4. python manage.py migrate
  5. runserver
0
Lê Hoàng Vũ

私は自分の仮想環境フォルダーを移動していたので、元の場所に戻しました。

0
Clayton Sibanda

Migrateコマンドを実行したときに、アプリにいくつかの移行ファイルが残っている可能性があります。最初に、すべてのモジュールからすべてのmigrationsディレクトリを削除します。他のケースでは、Nikhil Raneがすべてをカバーしました。

0