如何在Windows Server 10中删除Django未应用迁移并移除启动提示?
解决Django启动时未应用迁移提示及删除未应用迁移的方法
我懂你看到这个提示时想快速消除它的心情,不过先得搞清楚背后的逻辑——Django的迁移是用来同步数据库和模型定义的,这些未应用的迁移其实是系统默认的admin、auth这些核心应用的迁移,正常来说应该先应用它们,不过如果你确实有特殊需求要删除这些未应用迁移并去掉提示,下面是具体步骤:
一、常规推荐:应用迁移(解决提示的标准方法)
其实Django给出的提示已经说得很清楚了,这些未应用的迁移是核心应用必要的,不应用的话后续admin后台、用户认证这些功能可能会出问题。解决这个提示最稳妥的方式就是执行它建议的命令:
- 打开命令行,进入你的Django项目根目录(就是存放
manage.py的文件夹) - 执行命令:
python manage.py migrate
这个命令会自动将所有未应用的迁移(包括admin、auth这些核心应用的)同步到数据库,执行完之后再启动服务器,那个提示就会消失了,而且核心功能能正常运行。
二、删除未应用迁移并移除提示(谨慎操作)
如果你确定不需要这些核心应用的迁移(比如你完全不用admin后台、用户认证系统),可以按以下步骤操作:
步骤1:删除未应用的迁移文件
- 找到每个目标应用的
migrations文件夹,比如admin/migrations/、auth/migrations/、contenttypes/migrations/、sessions/migrations/ - 删除这些文件夹里除了
__init__.py之外的所有文件(如果删掉__init__.py,Django会识别不到这个应用的迁移模块)
步骤2:清理数据库中的迁移记录
Django会在数据库的django_migrations表中记录已应用的迁移,所以还要清理这部分:
- 进入Django的shell:
python manage.py shell - 执行以下代码(假设你用的是默认的数据库配置):
from django.db import connection with connection.cursor() as cursor: cursor.execute("DELETE FROM django_migrations WHERE app IN ('admin', 'auth', 'contenttypes', 'sessions');")
- 退出shell:输入
exit()
步骤3:从项目配置中移除不需要的应用(可选)
如果这些核心应用你完全用不到,可以直接从settings.py的INSTALLED_APPS里删掉它们,这样Django启动时就不会再检查这些应用的迁移了:
打开CalcProject/settings.py,找到INSTALLED_APPS列表,移除以下条目:
django.contrib.admindjango.contrib.authdjango.contrib.contenttypesdjango.contrib.sessions
这样之后启动服务器,就不会再出现相关的迁移提示了。
注意!这种方式只适合你完全不需要这些核心功能的场景,否则会导致admin后台无法访问、用户认证失效等问题,一定要谨慎操作!
内容的提问来源于stack exchange,提问作者Jeywanth Kannan
相关产品推荐
相关产品推荐

