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实现简易端口扫描器代码实例
Mar 15 Python
Django模板变量如何传递给外部js调用的方法小结
Jul 24 Python
Python数据结构之单链表详解
Sep 12 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
Nov 23 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
用uWSGI和Nginx部署Flask项目的方法示例
May 05 Python
python如何实现代码检查
Jun 28 Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
浅谈keras的深度模型训练过程及结果记录方式
Jan 24 Python
Django实现celery定时任务过程解析
Apr 21 Python
python从PDF中提取数据的示例
Oct 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
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
JavaScript常用代码书写规范的超全面总结
2016/09/11 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
vue 项目常用加载器及配置详解
2018/01/22 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
微信小程序如何使用云开发
2019/05/17 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
python3操作mysql数据库的方法
2017/06/23 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Python字典dict常用方法函数实例
2020/11/09 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
介绍一下内联、左联、右联
2013/12/31 面试题
Java面试题:为什么要用Java
2012/05/11 面试题
中文专业学生自我评价范文
2014/02/06 职场文书
酒店总经理助理职责
2014/02/12 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
婚纱摄影师求职信范文
2014/04/17 职场文书
竞聘演讲稿
2014/04/24 职场文书
我的老师教学反思
2014/05/01 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
外出学习心得体会范文
2016/01/18 职场文书
阿里云Nginx配置https实现域名访问项目(图文教程)
2021/03/31 Servers
numpy数据类型dtype转换实现
2021/04/24 Python
基于Redis延迟队列的实现代码
2021/05/13 Redis
python_tkinter弹出对话框创建
2022/03/20 Python