到目前为止,我已经尝试过互联网在这个问题上给我的任何东西,但我还是没有解决它。
Python 3.6.1 - django 1.11.2 - virtualenv
我有一个包含两个应用account
和app2
的django项目。最近,随着项目的不断发展,我决定将它们分成更合适的应用程序。现在我总共有8个应用account
分为user_auth
和user
,然后我删除了account
。为了整理它,我将所有应用程序从根文件夹移动到/apps/
。
到目前为止,user, user_auth, app2
仅在app2
未被使用的情况下使用*.pyc
每个单独文件中的代码被拆分,移动到指定的应用程序并重新编码以从正确的路径导入。
为了重新开始,我删除了db.sqlite3文件,删除了所有__pycache__
个文件,删除了所有migrations
个文件夹并清空了__init__.py
个文件夹,确保保留所有python manage.py migrate
个文件夹1}}文件。
通过virtualenv运行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')
给我这个输出:
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..
到目前为止,我对这些命令没有运气,确保删除其中的所有缓存和* .pyc文件:
('account', '0002_contact')
即使我删除了与我的代码没有直接关系的任何内容,我也不明白account
一直出现的原因。
“包含文本” - 搜索显示没有from distutils.core import setup, Extension
setup(name='init',
version='1.0',
ext_modules=[Extension('testemeu',['main.cpp'],include_dirs=[r"C:\Users\v\Documents\code\C\sml\SFML-2.4.2\include"],library_dirs = [r"C:\Users\v\Documents\code\C\sml\SFML-2.4.2\lib"])])
这样的事情。
知道下一步该去哪儿?
答案 0 :(得分:0)
显然django将迁移文件保存在自己的模块文件夹中。这就是我所做的:
pip uninstall django
。/Lib/site-packages
,删除了django
文件夹。*.pyc
个文件。__pycache__
个文件夹。migrations
个文件夹(保留__init__.py
)。pip install django==x.x.x
。python manage.py migrate
。python manage.py makemigrations <app_name>
。python manage.py migrate
。python manage.py runserver
。答案 1 :(得分:0)
这不是原始海报的问题。但是,当我遇到类似的错误时,这就是我解决的方法。
就我而言,我在依赖模块名称中有.py
扩展名,如下所示:
dependencies = [
('dashboard', '0003_auto_20181024_0603.py'),
('auth', '__latest__'),
('contenttypes', '__latest__'),
]
我删除了.py
,将其更改为此
('dashboard', '0003_auto_20181024_0603')
答案 2 :(得分:0)
我最近遇到了一个与您类似的问题,希望这可以为您找到解决方案提供一些指导。
我的问题仅发生在我的生产环境中。
为什么?我会解释。
我们使用git进行版本控制,而当我在本地进行开发工作时,我以某种方式将app/migrations/0009.py
文件包含到.gitignore
文件中。
长话短说,我将更改推送到远程服务器并继续进行应用迁移,但是会不断遇到您所描述的问题。
在摆弄了manage.py以及所有无意间没有提供任何解决方案的迁移命令之后,我想起我并没有想过是否查看缺少的依赖文件。
解决方案:
我通过在Django项目文件夹中的Shell中运行此命令来检查产品环境中是否存在依赖文件。
$ ls app/migration
这表明所需的依赖文件不存在。
那是我决定检查本地.gitignore
文件并删除行app/migrations/0009.py
我提交了本地更改并推送到产品服务器。然后,通过运行此命令,确认生产的服务器上已存在所需的文件。
$ ls app/migration
我跑了
$ ./manage.py check
-而这次问题已经消失了。
总而言之,请检查以确保所需的依赖项文件确实存在。