更改目录结构后 Django 迁移未检测到任何更改
Django migrations no changes detected after changing directory structure
我使用此目录结构创建了一个 Django 项目:
bi3online
__init__.py
migrations
__init__.py
static
templates
media
manage.py
models.py
urls.py
views.py
wsgi.py
...
当我 运行 python manage.py makemigrations
和 python manage.py migrate
时,它只为 auth
应用程序创建迁移,然后当我再次尝试时,它说没有检测到任何变化。迁移似乎只适用于应用程序,但我不确定。
models.py
from django.db import models
class Book(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(null=False, blank=False, max_length=64)
只是总结评论并引导您找到解决方案:
Django 与应用程序一起工作。该应用程序是一个包含 models.py
、apps.py
和 views.py
模块(可选其他)的文件夹。
假设您的应用名为 books
。为了让 Django 将该文件夹识别为一个应用程序,您需要将您的应用程序添加到 settings.py
:
INSTALLED_APPS = [
... ,
'books'
]
并且您需要 books
文件夹中的 apps.py
模块才能拥有此文件:
from django.apps import AppConfig
class BooksConfig(AppConfig):
name = 'books'
并且您应该具有以下项目结构:
bi3online
books
migrations
__init__.py
__init__.py
models.py
views.py
bi3online
__init__.py
manage.py
urls.py
wsgi.py
static
templates
media
我使用此目录结构创建了一个 Django 项目:
bi3online
__init__.py
migrations
__init__.py
static
templates
media
manage.py
models.py
urls.py
views.py
wsgi.py
...
当我 运行 python manage.py makemigrations
和 python manage.py migrate
时,它只为 auth
应用程序创建迁移,然后当我再次尝试时,它说没有检测到任何变化。迁移似乎只适用于应用程序,但我不确定。
models.py
from django.db import models
class Book(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(null=False, blank=False, max_length=64)
只是总结评论并引导您找到解决方案:
Django 与应用程序一起工作。该应用程序是一个包含 models.py
、apps.py
和 views.py
模块(可选其他)的文件夹。
假设您的应用名为 books
。为了让 Django 将该文件夹识别为一个应用程序,您需要将您的应用程序添加到 settings.py
:
INSTALLED_APPS = [
... ,
'books'
]
并且您需要 books
文件夹中的 apps.py
模块才能拥有此文件:
from django.apps import AppConfig
class BooksConfig(AppConfig):
name = 'books'
并且您应该具有以下项目结构:
bi3online
books
migrations
__init__.py
__init__.py
models.py
views.py
bi3online
__init__.py
manage.py
urls.py
wsgi.py
static
templates
media