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 控制迁移归属

相关推荐
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?
java·数据库·分布式·mysql·面试
yyuuuzz5 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
键盘上的猫头鹰8 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
Royzst8 小时前
数据库知识点
数据库
雪的季节9 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt
宋浮檀s9 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
yurenpai(27届找实习中)10 小时前
redis_点评(21.好友关注——关注、取关功能实现;共同关注功能实现)
数据库·redis·缓存
Rick199310 小时前
索引的排序和分组
数据库·mysql
爱莉希雅&&&10 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
JohnYan11 小时前
工作笔记 - PG分组极值
数据库·后端·postgresql