我正在升级我的django项目 django1.5
至 django1.11.10
. 当我运行时升级时 ./manange.py migrate
我要走了 django.db.migrations.exceptions.NodeNotFoundError
```
django.db.migrations.exceptions.NodeNotFoundError: Migration account.0004_auto_20180419_1309 dependencies reference nonexistent parent node (u'admin', u'0003_advertisements_alignedcourses_api_integration_appreciation_certificate_company_company_types_contrib')enter code here
这是我的项目结构
![](https://i.stack.imgur.com/kNyd1.jpg)
管理员/apps.py
class AdminConfig(AppConfig):
name = 'apps.admin'
label = 'admin_app'
帐户/apps.py
class AccountConfig(AppConfig):
name = 'account'
label = 'account_app'
我为所有管理模型添加了元属性
class Meta:
'''
Meta properties for this model
'''
app_label = 'admin_app'
我在我的项目中找不到任何迁移文件,我遵循了在internet上找到的一些解决方案。
django.db.migrations.exceptions.nodenotfounderror迁移身份验证不存在父节点
无法摆脱django1.11中的“不存在的父节点”
我重新安装了django.deleted all `.pyc` 文件夹。已删除所有迁移文件。但我还是犯了同样的错误。请帮助我,你能解释一下为什么会这样吗?
1条答案
按热度按时间smdnsysy1#
可能你有同名的应用程序-你自己的应用程序名为
admin
以及django.contrib.admin
. 无论应用程序的完整python路径是什么,最终部分都是重要的部分,需要在整个项目中保持唯一性。你可以试着改变主意
label
的AppConfig
与django或其他第三方应用程序冲突的应用程序。看看django的文件https://docs.djangoproject.com/en/1.11/ref/applications/#django.apps.appconfig.label
appconfig.label文件
应用程序的简称,例如“admin”
此属性允许在两个应用程序具有冲突标签时重新标记应用程序。它默认为name的最后一个组件。它应该是一个有效的python标识符。
它在django项目中必须是唯一的。
在django的源代码中https://github.com/django/django/blob/stable/1.11.x/django/apps/config.py#l31-l34级