【发布时间】:2017-12-20 19:24:24
【问题描述】:
到目前为止,我已经尝试了互联网在这个问题上给我的任何方法,但我仍然没有解决它。
Python 3.6.1 - django 1.11.2 - virtualenv
我有一个 django 项目,有两个应用程序 account 和 app2。最近,随着项目的发展,我决定将它们分成更合适的应用程序。现在我总共有 8 个应用程序,其中account 被拆分为user_auth 和user,然后我删除了account。为了进一步整理,我将所有应用程序从根文件夹移至/apps/。
到目前为止,只有user, user_auth, app2 被使用,而app2 未被触及。
每个单独文件中的代码都被拆分,移动到指定的应用程序并重新编码以从正确的路径获取导入。
为了重新开始,我删除了 db.sqlite3 文件,删除了所有 *.pyc 文件,删除了所有 __pycache__ 文件夹并清空了 migrations 文件夹,确保保留所有 __init__.py 文件。
通过 virtualenv 运行 python manage.py migrate 会给我这个输出:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "H:\Programming\VirProjDir\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line
utility.execute()
File "H:\Programming\VirProjDir\lib\site-packages\django\core\management\__init__.py", line 355, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "H:\Programming\VirProjDir\lib\site-packages\django\core\management\base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "H:\Programming\VirProjDir\lib\site-packages\django\core\management\base.py", line 330, in execute
output = self.handle(*args, **options)
File "H:\Programming\VirProjDir\lib\site-packages\django\core\management\commands\migrate.py", line 83, in handle
executor = MigrationExecutor(connection, self.migration_progress_callback)
File "H:\Programming\VirProjDir\lib\site-packages\django\db\migrations\executor.py", line 20, in __init__
self.loader = MigrationLoader(self.connection)
File "H:\Programming\VirProjDir\lib\site-packages\django\db\migrations\loader.py", line 52, in __init__
self.build_graph()
File "H:\Programming\VirProjDir\lib\site-packages\django\db\migrations\loader.py", line 274, in build_graph
raise exc
File "H:\Programming\VirProjDir\lib\site-packages\django\db\migrations\loader.py", line 244, in build_graph
self.graph.validate_consistency()
File "H:\Programming\VirProjDir\lib\site-packages\django\db\migrations\graph.py", line 261, in validate_consistency
[n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
File "H:\Programming\VirProjDir\lib\site-packages\django\db\migrations\graph.py", line 261, in <listcomp>
[n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
File "H:\Programming\VirProjDir\lib\site-packages\django\db\migrations\graph.py", line 104, in raise_error
raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError: Migration auth.0009_user_following dependencies reference nonexistent parent node ('account', '0002_contact')
到目前为止,我没有使用这些命令,确保删除所有缓存和 *.pyc 文件:
python manage.py migrate
python manage.py makemigrations
python manage.py makemigrations <app_name>
python manage.py flush
python manage.py --fake
python manage.py --fake <app_name> zero
etc..
我不明白为什么 ('account', '0002_contact') 一直出现,即使我已经删除了与我的代码没有直接关系的任何内容。
“包含文本”的搜索显示没有 account 如此。
知道下一步该往哪里看吗?
【问题讨论】:
标签: django python-3.x django-models virtualenv django-migrations