升级django时出现django.db.migrations.exceptions.NodeNotFoundError

时间:2018-04-20 12:45:20

标签: mysql python-2.7 django-migrations django-1.5 django-1.11

我正在将我的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`

这是我的项目结构

enter image description here

管理员/ 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'

我无法从我的项目中找到任何迁移文件,而且我遵循了我在互联网上找到的一些解决方案。

django.db.migrations.exceptions.NodeNotFoundError Migration authentication nonexistent parent node

Can't get rid of "nonexistent parent node" in django 1.11

我重新安装了django.Deleted所有.pyc个文件。删除了所有迁移文件。我仍然得到同样的错误。请帮助我,你可以解释它为什么会发生吗?

1 个答案:

答案 0 :(得分:0)

可能您的应用程序名称相同 - 您自己的应用名为admindjango.contrib.admin。无论什么是应用程序最终部分的完整python路径是重要的部分,并且需要在整个项目中是唯一的。

您可以尝试更改与django或其他第三方应用程序冲突的应用程序label的{​​{1}}。

看看Django文档 https://docs.djangoproject.com/en/1.11/ref/applications/#django.apps.AppConfig.label

  

<强> AppConfig.label

     

应用程序的简称,例如&#39;管理&#39;

     

当两个应用程序具有冲突标签时,此属性允许重新标记应用程序。它默认为name的最后一个组件。它应该是一个有效的Python标识符。

     

它在Django项目中必须是唯一的。

和Django的源代码https://github.com/django/django/blob/stable/1.11.x/django/apps/config.py#L31-L34

AppConfig