django 解决manage.py migrate无效的问题


Posted in Python onMay 27, 2018

问题描述:

已有的model,修改之后,想重新建模,于是将migrations文件夹中除__init__.py之外其他文件都删掉,再次执行以下步骤python manage.py makemigrations确认成功,执行python manage.py migrate,提示No migrations to apply. 表示一脸懵逼。再次修改,指定表名,再次尝试,发现问题依旧,表示二脸懵逼

排查过程

python manage.py dbshell 进到数据库里面,查看是否表已存在

结果:表不存在

检查migrations文件

结果:文件没问题

百度 google 各种搜,乱投医,各种尝试

解决方案

python manage.py dbshell 进到数据库中,执行delete from django_migrations where app='your_appname';

python manage.py makemigrations(若migrations文件未删除,可不执行这一步)

python manage.py migrate 好啦,大功告成

原因分析

查看django_migrations表结构

建表语句:

CREATE TABLE "django_migrations" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "app" varchar(255) NOT NULL, "name" varchar(255) NOT NULL, "applied" datetime NOT NULL);

原因

造成多次应用migrations失败的原因是,当前model是修改过的,原来的migrations已经被我删除,但是,重新生成的migrations使用递增整数记名,所以,在django_migrations表中0001,0002等前面几个数字的文件都已被记录,在Django看来,被记录了就相当于已应用,所以,会出现刚开始的No migrations to apply.

避免方案

有强迫症删除migrations文件的同学(比如我),请同时到数据库中删除相应记录

没有强迫症的同学,可以继续生成新的migrations,旧的就不必理会了

题外话

执行python manage.py migrate之后,可以使用python manage.py sqlmigrate appname migrations_num(例如python manage.py sqlmigrate user 0002)查看当前migrations文件对应的sql语句。

另外,在使用上述命令查看0002文件的sql语句时发现,django会新建一个表user_new,然后插入user表中的数据,再把user表删掉,再把user_new重命名为user。所以,修改model的时候,不必担心原有数据会丢失。

以上这篇django 解决manage.py migrate无效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python读写文件方法总结
Jun 09 Python
用Python分析3天破10亿的《我不是药神》到底神在哪?
Jul 12 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 Python
对Python的zip函数妙用,旋转矩阵详解
Dec 13 Python
对pyqt5之menu和action的使用详解
Jun 20 Python
django实现类似触发器的功能
Nov 15 Python
Django app配置多个数据库代码实例
Dec 17 Python
Django Xadmin多对多字段过滤实例
Apr 07 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
python 实现逻辑回归
Dec 30 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 #Python
解决Django migrate No changes detected 不能创建表的问题
May 27 #Python
django 在原有表格添加或删除字段的实例
May 27 #Python
用python写扫雷游戏实例代码分享
May 27 #Python
和孩子一起学习python之变量命名规则
May 27 #Python
儿童学习python的一些小技巧
May 27 #Python
django初始化数据库的实例
May 27 #Python
You might like
10条PHP高级技巧[修正版]
2011/08/02 PHP
php在线代理转向代码
2012/05/05 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
2018/01/09 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
jQuery擦除插件eraser使用方法详解
2020/01/11 jQuery
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
Python中的十大图像处理工具(小结)
2019/06/10 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
python的flask框架难学吗
2020/07/31 Python
用python制作个视频下载器
2021/02/01 Python
Python绘制K线图之可视化神器pyecharts的使用
2021/03/02 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
html5简单示例_动力节点Java学院整理
2017/07/07 HTML / CSS
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
管理学专业个人求职信范文
2013/12/13 职场文书
出纳员岗位职责
2014/03/13 职场文书
实验室的标语
2014/06/20 职场文书
园林技术专业求职信
2014/07/28 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
资产移交协议书
2016/03/24 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python