0

到目前为止,我已经尝试过任何关于这个问题的因特网给我,我仍然没有解决它。在django中无法摆脱“不存在的父节点”1.11

的Python 3.6.1 - Django的1.11.2 - 的virtualenv
我有两个应用程序accountapp2一个Django项目。最近我决定随着项目的增长将它们分成更合适的应用程序。现在我总共有8个应用程序,其中account分为user_authuser,然后我删除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

任何想法在哪里看下?

+0

我建议阅读以下两篇文章:[post1](https:// stackoverflow。com/questions/31281377/django-nodenotfounderror-migration-migration)[post2](https://stackoverflow.com/questions/37937343/django-db-migrations-exceptions-nodenotfounderror) – pooya

回答

0

显然django将迁移文件保存在它自己的模块文件夹中。这是我做的:

  1. pip uninstall django
  2. /Lib/site-packages,删除django文件夹。
  3. 删除我项目中的所有*.pyc文件。
  4. 删除我项目中的所有__pycache__文件夹。
  5. 已清除我项目中的所有migrations文件夹(请保留__init__.py)。
  6. pip install django==x.x.x
  7. python manage.py migrate
  8. python manage.py makemigrations <app_name>
  9. python manage.py migrate
  10. python manage.py runserver
  11. 庆祝。