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

如何在Django迁移中排除auth、admin等内置模型仅迁移自定义模型

仅迁移Django自定义模型的解决方案

1. 移除不需要的内置应用

打开项目根目录下的settings.py,修改INSTALLED_APPS列表,删除django.contrib.admin、django.contrib.auth、django.contrib.sessions、django.contrib.messages这些你不需要的内置应用。必须保留django.contrib.contenttypes(Django ORM依赖它实现模型关联等核心功能,无法删除),如果不需要静态文件支持,也可以移除django.contrib.staticfiles。

修改后的示例:

INSTALLED_APPS = [
    'django.contrib.contenttypes',
    # 替换为你的自定义应用名称
    'my_custom_app',
]

2. 生成自定义模型的迁移文件

针对自定义应用单独生成迁移文件,避免触发内置应用的迁移逻辑:

python manage.py makemigrations my_custom_app

3. 仅应用自定义模型的迁移

执行迁移时指定你的自定义应用,这样只会将自定义模型的变更同步到数据库,不会处理任何内置模型的迁移:

python manage.py migrate my_custom_app

额外注意事项

  • 如果项目之前已运行过全局migrate命令,数据库中已有内置应用的表,只要在INSTALLED_APPS中移除这些应用,Django后续就不会再对这些表进行任何操作,不会影响现有数据库架构。
  • 确保代码中没有依赖已移除内置应用的逻辑(比如@login_required装饰器、admin后台相关代码等),否则会引发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:10:37