Django 中数据库迁移命令

在 Django 中,python manage.py makemigrationspython manage.py sqlmigrate polls 0003python manage.py migrate 是与数据库迁移相关的重要命令。它们的作用和对应内容如下:

1. python manage.py makemigrations

  • 功能 :
    • 此命令会根据你的模型文件 (models.py) 中的变化生成新的迁移文件。这些迁移文件是 Python 脚本,用于描述如何将数据库的结构与相应的 Django 模型同步。
  • 对应内容 :
    • 如果你对模型进行了更改(例如添加了字段或修改了字段的类型),运行此命令后会创建一个新的迁移文件,该文件存储在应用的 migrations 文件夹中。它包含了必要的指令,以便可以执行这些更改。

2. python manage.py sqlmigrate polls 0003

  • 功能 :
    • 此命令将输出给定迁移(例如 0003)对应的 SQL 语句,而不会实际执行迁移。它用于查看 Django 将要在数据库上执行的原始 SQL 操作,非常有用来调试和理解迁移行为。
  • 对应内容 :
    • polls 是应用名称,0003 是迁移文件的编号。例如,如果你在 polls/migrations/0003_auto_20231001_1200.py 定义了迁移,这个命令将显示该迁移所采取的所有操作的 SQL 语句,例如创建表、删除字段或添加索引等。

3. python manage.py migrate

  • 功能 :
    • 此命令会应用迁移到数据库。它将检查哪些迁移尚未应用,并在数据库中执行必要的操作,从而将数据库状态更新为与模型文件一致。
  • 对应内容 :
    • 执行此命令之后,Django 会根据之前生成的迁移文件,对数据库进行修改(如创建表、添加字段、修改现有字段等)。当迁移成功后,Django 在 django_migrations 表中记录已应用的迁移信息。

总结

  • makemigrations: 创建新的迁移文件,捕获模型的更改。
  • sqlmigrate: 查看特定迁移将执行的 SQL 语句,不做实际修改。
  • migrate: 应用迁移,对数据库进行实际的更改,使其与当前的模型保持一致。
相关推荐
赵渝强老师2 小时前
【赵渝强老师】国产金仓数据库的表空间
数据库·postgresql
廋到被风吹走3 小时前
【数据库】【Oracle】PL/SQL 存储过程与函数
数据库·sql·oracle
amao99883 小时前
数据库原理与技术 - 3-3 3-4 SQL语言(二)数据操作语言
数据库·sql·oracle
AC赳赳老秦3 小时前
DeepSeek+Power BI:数据导入脚本生成与可视化图表优化技巧
数据库·mongodb·信息可视化·流程图·mapreduce·数据库架构·deepseek
VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue图书管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
笑洋仟4 小时前
Linux StorCLI工具安装和使用
linux·数据库·redis
麦聪聊数据4 小时前
数据服务化(生产者篇):如何通过 QuickAPI 实现 SQL 逻辑的安全封装与发布?
数据库·sql·安全
amao99885 小时前
数据库原理与技术 - 3-5 SQL查询训练(习题)
数据库·sql
程序员Null的自我修养5 小时前
全面整理Redis过期删除与内存淘汰策略底层原理机制
数据库·redis
陌路206 小时前
MYSQL索引篇--基础知识
数据库·mysql