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中的floor()方法
May 15 Python
Python实现ssh批量登录并执行命令
Oct 25 Python
python使用SMTP发送qq或sina邮件
Oct 21 Python
Python解析命令行读取参数--argparse模块使用方法
Jan 23 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
Python multiprocessing多进程原理与应用示例
Feb 28 Python
Python修改列表值问题解决方案
Mar 06 Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 Python
聊一聊python常用的编程模块
May 14 Python
Python虚拟环境virtualenv是如何使用的
Jun 20 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
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
基于JQuery.timer插件实现一个计时器
2010/04/25 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
浅谈JavaScript Math和Number对象
2015/01/26 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
2017/04/24 Javascript
Angular.JS中select下拉框设置value的方法
2017/06/20 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
Vue 中mixin 的用法详解
2018/04/23 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
Vue在 Nuxt.js 中重定向 404 页面的方法
2019/04/23 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
python黑魔法之参数传递
2016/02/12 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
详解python中的闭包
2020/09/07 Python
年度考核自我鉴定
2013/11/09 职场文书
中专三年学习的个人自我评价
2013/12/12 职场文书
政法大学毕业生自荐信范文
2014/01/01 职场文书
参观监狱心得体会
2014/01/02 职场文书
社区工作者思想汇报
2014/01/13 职场文书
2014年化验员工作总结
2014/11/18 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
百万英镑观后感
2015/06/09 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
nginx安装以及配置的详细过程记录
2021/09/15 Servers
使用Python解决图表与画布的间距问题
2022/04/11 Python