Django数据库迁移命令

news/2025/3/19 21:03:18/文章来源:https://www.cnblogs.com/emanlee/p/18017241

Django数据库迁移命令

迁移命令 migrate 

 

python manage.py migrate  # 全部项目

python manage.py migrate  AppName # 一个项目


执行迁移命令必须确保当前在项目目录下(执行ls命令能看到 manage.py文件), 然后使用  python manage.py migrate  即可。

如果IDE为pycharm也可以在运行/调试配置中创建命令,下方我所有迁移命令均在pycharm中完成。

 


makemigrations (生成迁移脚本)

makemigrations 是我们多次使用的命令,他会将我们 model.py 中创建的数据库模型生成迁移脚本库,每次只要我们的数据库模型model.py中发生了变化,使用 python manage.py makemigrations 就会在migrations中创建一个记录我们变化的脚本

 


makemigrations 参数

 

python manage.py makemigrations # 全部项目

python manage.py makemigrations AppName # 一个项目


默认不带参数的情况下,makemigrations会迁移当前项目中所有APP中的模型,并且生成迁移脚本,并且迁移脚本库名当修改较少时会根据修改内容生成名称,但在数据库做过多修改时会生成一个为当前时间的名称。

makemigrations参数    作用
APP名称    可以填写一个或者多个app名称,那么就只会针对这几个app生成迁移脚本。
--name 名称    给这个迁移脚本指定一个名字。
--empty    生成一个空的迁移脚本。如果你想写自己的迁移脚本,可以使用这个命令来实现一个空的文件,

比如我下面写到

python manage.py makemigrations query --name add_VIP

可以直针对query APP生成迁移脚本,并且脚本名称为add_VIP

 


migrate (将迁移脚本映射进入数据库)

migrate也是非常常用的命令, 他将我们生成的映射脚本转换成SQL语句在指定的数据库中执行,在数据库中生成或修改表。

 


migrate参数

默认情况下,migrate会将所以APP中的映射脚本映射进入数据库
migrate参数    作用
APP名称    将一个或多个APP名称下的迁移脚本映射到数据库中。
APP名称 映射脚本    将某个app下指定名字的migration文件夹中的指定映射脚本映射到数据库中。
--fake    可以将指定的迁移脚本名字添加到数据库中。但是并不会把迁移脚本转换为SQL语句,修改数据库中的表。
--fake-initial    将第一次生成的迁移文件版本号记录在数据库中。但并不会真正的执行迁移脚本。

其中--fake与--fake-intial常用于解决迁移版本时报错使用,下方会详细讲解
showmigrations(查看迁移文件)

查看某个app下的迁移文件。如果后面没有app,那么将查看INSTALLED_APPS中所有的迁移文件。(此命令使用较少,大部分现代IDE中都会携带当前项目目录)

 


sqlmigrate(迁移使用SQL)

查看某个迁移文件在映射到数据库中的时候,转换的SQL语句
python manage.py sqlmigrate APP名 迁移脚本名,比如说下图第四个迁移脚本名为
0004_delete_text
除了写全民外,简写成编号也同样可以查询出来
python manage.py sqlmigrate APP名 迁移脚本编号编号需要完整编号,比如第四个要写成0004,不能是4

 



链接:https://blog.csdn.net/qq_39611230/article/details/105151677

=======================================

解决方法:

1、删除001_initial文件

2、删除django_migrations表中记录

由于Django自带的一个表django_migrations表中已经将之前生成的表添加进入了

=======================================

 python manage.py sqlmigrate UserManage 0001
令具体执行了什么语句

=======================================

 https://www.bilibili.com/video/BV1ba411h7Mi/

 

 

 

 

 

 

 

=======================================

 

=======================================

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901706.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一个因为电平转换的问题

调试电赛三子棋的棋盘时,发现了一个很让人抓狂的问题(因为我旧的原理图是霍尔全部的引脚全部引了出来,单片机用18个引脚去直接读取),但是最近因为一些事情,需要重新复刻 这个项目,于是乎我使用了并转串芯片,74hc165,单片机仅需三个引脚即可获取所有端口的状态,但是调…

什么是供应链管理?四个流是什么?一文彻底搞懂!

你有没有遇到过这些问题?客户下单了,但生产还没跟上,结果交货延期,客户疯狂催单? 仓库库存爆满,但缺的产品偏偏一直补不上,导致库存积压+缺货断货? 供应商交期不稳定,原材料时多时少,生产计划一改再改,车间每天在救火?如果你的企业也有这些烦恼,那说明你的供应链管…

业务系统基础框架-Winform版-极简登录

极简登录未输入提示登录错误提示

Ollama系列04:进阶篇-搭建私有的知识库和问答系统—cherryStudio版

本文是Ollama系列教程的第4篇,在前面的3篇内容中,我们分享了如何在本地安装ollama、运行deepseek等大模型、以及如何在chatbox和cherryStudio中使用本地ollama中的大模型,我们创建了私有的AI对话框和智能体。 Ollama系列教程目录(持续更新中):轻松3步本地部署deepseek 快…

halcon 入门教程(四) 一维码识别,二维码识别,OCR识别

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/18781763有兴趣可以多看其他的halcon教程halcon 学习教程目录OK,本篇讲一些一维码,二维码,OCR识别的相关入门知识,不会讲的太深,因为如果你不是专门做这种设备的公司基本不会深入的去研究分析,但是学会基础…

微服务跨模块调用接口如何传递当前用户信息

我们要在 api模块下 新增一个配置类 FeignInterceptorConfig 该类的作用是 跨模块调用接口时拦截然后给用户信息添加进去 具体实现方式 注意点是需要手动配置一下 通过Spring Boot的自动配置机制,将com.hmall.api.config.FeignInterceptorConfig类注册为自动配置类。具体作用…

听见未来,Audio+AI | GAS 2025完整议程揭晓!

听见未来,Audio+AI 2025中国国际音频产业大会(GAS) 将于 3月26-27日 在上海张江科学会堂盛大举办!大会主题聚焦聚焦“听见未来,Audio+AI”,两场主旨论坛、八场专题论坛。内容覆盖电子产业热点领域及方向,分别包括音频+AI、智能车载 音频、线上智能交互、智能耳机与可穿戴…

C++容器

容器的分类分为顺序容器(sequence) 关联容器(asscoiative) 无序容器(unordered) 顺序容器Array、vector、deque、list 关联容器有(mul)set和(mul)map,set和map的区别在于,set的key就是value,而map的key和value是分开的,set和map内部都是通过红黑树实现 无序容器主要为…

.NET Core奇技淫巧之WinForm使用Python.NET并打包

前言 之前整了一个GZY.EFCoreCompare 的库,可以用做对比实体与数据库结构.感兴趣可以去看看,地址:GZY.EFCoreCompare 但是只能导出execl表格. 后来大佬用Python写了个类,可以将execl表格直接生成SQL语句. 但是需要通过开发工具 或者python环境去运行. 对现场的非技术人员很不友…

MCP Server 开发实战指南(Python版)

原文链接:https://www.ryanzoe.top/ai/mcp-server-%e5%bc%80%e5%8f%91%e6%95%99%e7%a8%8b/ MCP 官方文档https://modelcontextprotocol.io/introduction各个 clients 对 MCP 的支持情况https://modelcontextprotocol.io/clientsMCP Python SDK:MCP Client 和 Server 官方 SDK…

Amphion 推出合成音频鉴别系统 Auditi;Gemini 引入 NotebookLM 功能,生成文档、网页音频摘要丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看点的 活动 」,但内容仅代表编辑…