次のコマンドを実行すると
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')"
この問題を解決するにはどうすればよいですか?
ソリューション-1
移行フォルダーからpycファイルを削除します。
ソリューション-2
移行ファイルを編集して、testBolt.0001_initialからその参照を削除する必要があります。
ソリューション-
モーダルから新しい変更を削除し、python manage.py migrate --fake
を実行します
新しい変更でモデルを再度修正します
python manage.py makemigrations
を実行します
そして再びpython manage.py migrate
を実行します
仮想環境のウィンドウでDjango=を実行すると、同様のケースがありました。私の場合、欠落している依存関係は0001_initialでした。これは間違いなく移行フォルダーにありました。
「解決策」は、pycファイルを削除して、別の移行を試みることでした。
同じ問題がありました。私の場合、移行を手動で操作したため、__init__.py
migrations
フォルダー内。
私の場合、依存モジュール名に次のような.py
拡張がありました。
dependencies = [
('dashboard', '0003_auto_20181024_0603.py'),
('auth', '__latest__'),
('contenttypes', '__latest__'),
]
.py
を削除して、これに変更しました
('dashboard', '0003_auto_20181024_0603')
そしてそれはそれを修正しました。
仮想環境をアクティブにしていることを確認してください。
KeyError: u"Migration testBolt.0001_initial dependencies reference nonexistent parent node (u'delivery_boy', u'0004_auto_20150221_2011')"
削除する
testBolt.0001_initial
その後、再度移行を実行します
以下のソリューションを紹介します。
pip3 install Django==2.2 --user
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')
幸運にもNIKHILのソリューションを試しました。私のために働いたのは:
__pycache__
フォルダこれは私のために働くあなたのアプリの移行フォルダで
__init__
)移行内のすべてのファイルを削除します(__init__
)
python manage.py makemigrations
python manage.py migrate
runserver
私は自分の仮想環境フォルダーを移動していたので、元の場所に戻しました。
Migrateコマンドを実行したときに、アプリにいくつかの移行ファイルが残っている可能性があります。最初に、すべてのモジュールからすべてのmigrations
ディレクトリを削除します。他のケースでは、Nikhil Raneがすべてをカバーしました。