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自动化测试实例解析
Sep 28 Python
Python实现的简单算术游戏实例
May 26 Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 Python
opencv python 2D直方图的示例代码
Jul 20 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
详解pandas删除缺失数据(pd.dropna()方法)
Jun 25 Python
python:解析requests返回的response(json格式)说明
Apr 30 Python
Python Django模型详解
Oct 05 Python
Python 键盘事件详解
Nov 11 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
PHP中通过加号合并数组的一个简单方法分享
2011/01/27 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
PHP微信支付开发实例
2016/06/22 PHP
php模拟post上传图片实现代码
2016/06/24 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
Javascript this 的一些学习总结
2012/08/31 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
jQuery监听浏览器窗口大小的变化实例
2017/02/07 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
layui自定义插件citySelect实现省市区三级联动选择
2019/07/26 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
对python 各种删除文件失败的处理方式分享
2018/04/24 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
简单了解Python3里的一些新特性
2019/07/13 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
Diptyque英国官方网站:源自法国的知名香氛品牌
2019/08/28 全球购物
报社实习生自荐信
2014/01/24 职场文书
幼儿园门卫制度
2014/01/29 职场文书
商务代表岗位职责
2015/02/15 职场文书
银行求职自荐信范文
2015/03/04 职场文书
催款函范本大全
2015/06/24 职场文书
三八节祝酒词
2015/08/11 职场文书
工作简历的自我评价
2019/05/16 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技