You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除Django的所有默认migration文件?

删除Django全部默认migration操作指南

前置提醒:操作前请务必备份项目代码和数据库,避免误操作造成数据丢失。本操作仅适用于完全不需要使用Django默认提供的用户、后台、会话等配套功能的项目,如果后续有使用这些功能的需求,不建议执行。

操作步骤

1. 清理配置项中不需要的默认应用

打开项目的settings.py文件,找到INSTALLED_APPS配置列表,删除你用不到的Django默认应用,常见默认应用如下:

  • django.contrib.admin
  • django.contrib.auth
  • django.contrib.contenttypes
  • django.contrib.sessions
  • django.contrib.messages
  • django.contrib.staticfiles
    仅保留你自己开发的应用和确定要使用的第三方应用即可。

2. 删除已存在的migration文件

如果你的项目已经执行过makemigrations或者migrate指令,需要先清理所有未使用的migration文件,保留各migrations目录下的__init__.py即可:

  • Linux/macOS 系统可直接执行终端指令:
find . -path "*/migrations/*.py" -not -name "__init__.py" -delete
find . -path "*/migrations/*.pyc"  -delete
  • Windows系统可手动进入各个应用的migrations文件夹,删除除__init__.py外的所有.py和.pyc后缀文件。

3. 清空数据库中的migration记录

如果你的数据库已经执行过默认的migrate操作,需要清理已有记录和无效表:

  • 若使用SQLite数据库且无业务数据,可直接删除项目根目录下的db.sqlite3文件
  • 若使用MySQL/PostgreSQL等数据库,先删除所有Django默认生成的业务表,再执行SQL语句清空migration记录表:
    DELETE FROM django_migrations;

4. 重新生成并执行自定义migration

后续仅针对你自己开发的应用生成和执行migration即可:
python manage.py makemigrations 你的自定义应用名称
python manage.py migrate


可选方案:保留默认应用但忽略其migration

如果你需要保留部分默认应用的功能,但不想使用它们自带的migration,可以在settings.py中添加如下配置,将不需要生成migration的应用对应值设为None即可:

MIGRATION_MODULES = {
    'django.contrib.contenttypes': None,
    'django.contrib.auth': None,
    'django.contrib.admin': None,
    'django.contrib.sessions': None,
}

配置完成后Django会直接跳过这些应用的migration检查和执行流程。

内容的提问来源于stack exchange,提问作者Denny Rustandi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 16:27:01