makemigrations 无法在 INSTALLED_APPS 中找到应用程序

Posted

技术标签:

【中文标题】makemigrations 无法在 INSTALLED_APPS 中找到应用程序【英文标题】:makemigrations not able to find app within INSTALLED_APPS 【发布时间】:2016-03-26 13:04:41 【问题描述】:

我正在尝试将现有的 django 1.4 项目移植到 django 1.7

这是我将项目移植到 django 1.7 之前的树结构

Project
 - MainApp
    - manage.py
    - settings.py
    - another_sub_app
    - another_sub_app2

在移植项目时,我不得不将 manage.py 和 sub_apps 上移一级。

Project
 - another_sub_app
 - another_sub_app2
 - manage.py
 - MainApp
  - settings.py

我使用“South”进行数据库迁移,必须使用“python manage.py schemamigration”进行迁移。现在(移植后)我将使用“python manage.py makemigrations”来迁移特定于应用程序的模型更改。

但是,在运行“python manage.py makemigrations”时,我得到了:

找不到应用“app_name”。它在 INSTALLED_APPS 中吗?

我在 INSTALLED_APPS 下有应用程序,由于我所做的结构更改,我还尝试了包括 .在 INSTALLED_APPS 内。但这又显示了同样的错误。

我的问题是有没有人尝试将项目移植到 django 1.7 并且遇到过类似的问题?

【问题讨论】:

【参考方案1】:

我没有尝试将项目移植到 django 1.7。但是,我使用 django 1.7,你的 settings.py 应该是这样的

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'your_app_name',  #In your case, MainApp
    'your_app_name',  #In your case, another_sub_app
    'your_app_name',  #In your case, another_sub_app2
)

而树形结构是

Project
  - Project
    - settings.py
  - MainApp
  - another_sub_app
  - another_sub_app2
  - manage.py

【讨论】:

以上是关于makemigrations 无法在 INSTALLED_APPS 中找到应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Django 上的 MakeMigration 错误 - ImportError:无法从“django.db.models”导入名称“FieldDoesNotExist”

Django 1.11 使用命令makemigrations命令无法执行表修改动作

makemigrations 忽略所有领域 (DJANGO)

django makemigrations 和 heroku 服务器上的迁移不创建表

Heroku 上的 Django 1.7:如何让 makemigrations 重新扫描数据库?

Django:啥时候运行makemigrations?