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实现的质因式分解算法示例
May 03 Python
用python写扫雷游戏实例代码分享
May 27 Python
对python3 一组数值的归一化处理方法详解
Jul 11 Python
Python基础之文件读取的讲解
Feb 16 Python
利用Python半自动化生成Nessus报告的方法
Mar 19 Python
Python 从subprocess运行的子进程中实时获取输出的例子
Aug 14 Python
python中单下划线(_)和双下划线(__)的特殊用法
Aug 29 Python
python自动化测试之异常及日志操作实例分析
Nov 09 Python
python实现猜拳游戏
Mar 04 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
python 瀑布线指标编写实例
Jun 03 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 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
Yii中表单用法实例详解
2016/01/05 PHP
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
laravel 数据验证规则详解
2019/10/23 PHP
基于jQuery的输入框在光标位置插入内容, 并选中
2011/10/29 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
解决Vue使用mint-ui loadmore实现上拉加载与下拉刷新出现一个页面使用多个上拉加载后冲突问题
2017/11/07 Javascript
Bootstrap treeview实现动态加载数据并添加快捷搜索功能
2018/01/07 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
利用CDN加速react webpack打包后的文件详解
2018/02/22 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
深入学习JavaScript中的bom
2019/05/27 Javascript
vue-iview动态新增和删除的方法
2020/06/17 Javascript
vue.js实现照片放大功能
2020/06/23 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
Python3调用百度AI识别图片中的文字功能示例【测试可用】
2019/03/13 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
Python中注释(多行注释和单行注释)的用法实例
2019/08/28 Python
python torch.utils.data.DataLoader使用方法
2020/04/02 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
Sneaker Studio匈牙利:购买运动鞋
2018/03/26 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
大学生毕业求职的自我评价
2013/09/29 职场文书
养生餐厅创业计划书范文
2014/03/26 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS