django 数据库迁移

文章目录

  • [django 数据库迁移](#django 数据库迁移)
    • [1. 为某个应用生成迁移文件](#1. 为某个应用生成迁移文件)
    • [2. 只迁移某个应用](#2. 只迁移某个应用)
    • [3. 指定数据库迁移](#3. 指定数据库迁移)
    • [4. 查看迁移执行情况](#4. 查看迁移执行情况)
    • [5. 回滚某个应用的迁移](#5. 回滚某个应用的迁移)

django 数据库迁移


1. 为某个应用生成迁移文件

假设应用名叫 wmsapp

bash 复制代码
python manage.py makemigrations wmsapp

会在 wmsapp/migrations/ 下生成迁移文件(例如 0001_initial.py)。


2. 只迁移某个应用

执行迁移时加上应用名即可:

bash 复制代码
python manage.py migrate wmsapp

默认会用 default 数据库,但因为你有多个库,还需要告诉 Django 用哪个数据库。


3. 指定数据库迁移

Django 提供了 --database 参数,例如迁移到 wms(MySQL):

bash 复制代码
python manage.py migrate wmsapp --database=wms

如果你的 routers.py 已经写了 allow_migrate 规则,Django 在不加 --database 的情况下也会自动把 wmsapp 的迁移打到 wms,但是显式指定更安全。


4. 查看迁移执行情况

bash 复制代码
python manage.py showmigrations wmsapp --database=wms

会列出该应用在 wms 数据库的迁移状态。


5. 回滚某个应用的迁移

比如回退到初始状态(不保留表):

bash 复制代码
python manage.py migrate wmsapp zero --database=wms

✅ 总结:

  • makemigrations app_name → 生成迁移文件
  • migrate app_name --database=xxx → 执行到指定数据库
  • 多数据库项目里最好在 routers.py 控制迁移归属

相关推荐
IvorySQL3 小时前
PostgreSQL 分区表的 ALTER TABLE 语句执行机制解析
数据库·postgresql·开源
·云扬·3 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
IT邦德3 小时前
Oracle 26ai DataGuard 搭建(RAC到单机)
数据库·oracle
惊讶的猫4 小时前
redis分片集群
数据库·redis·缓存·分片集群·海量数据存储·高并发写
不爱缺氧i4 小时前
完全卸载MariaDB
数据库·mariadb
纤纡.4 小时前
Linux中SQL 从基础到进阶:五大分类详解与表结构操作(ALTER/DROP)全攻略
linux·数据库·sql
jiunian_cn4 小时前
【Redis】渐进式遍历
数据库·redis·缓存
橙露4 小时前
Spring Boot 核心原理:自动配置机制与自定义 Starter 开发
java·数据库·spring boot
冰暮流星4 小时前
sql语言之分组语句group by
java·数据库·sql
符哥20084 小时前
Ubuntu 常用指令集大全(附实操实例)
数据库·ubuntu·postgresql