django数据库migrate失败的解决方法解析


Posted in Python onFebruary 08, 2018

Django是一个MVC架构的web框架,其中,数据库就是“Module”。使用这种框架,我们不必写一条SQL语句,就可以完成对数据库的所有操作。在之前的Django版本中,我们像操作本地对象那样操作数据对象,在更改保存之后,执行python
manage.py syncdb命令来同步数据库,在我使用的1.9.2版本中,需要依次执行一下步骤:

  • python manage.py makemigrations (这个命令会根据你对数据库做出的更改生成操作数据库的python脚本)
  • python manage.py migrate (这个命令会执行python脚本)

我遇到的问题是,执行makemigrations没有问题,但是执行migrate的时候有问题。于是我修改了modules.py中错误的代码,再次执行,却一直出问题。提示如下:

django.db.utils.OperationalError:
(1060,
"Duplicate
 column name 'to_user_id'")

我删掉了makemigrations生成的代码,然后重新使用makemigrations生成脚本,还是出错。

原来,这是由于出错的时候,migrate命令已经执行了部分脚本,也就是说,to_user_id属性已经被操作过了,在数据库中,已经无需再操作了,所以执行migrate命令重新更新makemigrations的脚本会出错。

解决办法

重新生成makemigrations不行,执行migrate也只会全部执行。那么我们只好把数据库恢复到出错的那次执行前面的样子。

django数据库migrate失败的解决方法解析

恢复方法:在project/app/migrations下有每次对数据操作所生成的脚本。找到出错那次脚本,打开脚本,可读性还是很高的,将所对应的数据库更改还原(当然得使用mysql语句了)。

然后删掉这次migration,重新make 然后执行。

实在不行,还有一个万不得已的办法。几乎所有的数据库错误都可以用这个方法解决:

将migrations文件夹下的文件除了__init__.py全部删掉,然后将数据库drop掉,重新建数据库。然后make,migrate,就可以使用一个新的数据库(但愿你永远用不到这个方法)。

总结

以上就是本文关于django数据库migrate失败的解决方法解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python 正则式使用心得
May 07 Python
python刷投票的脚本实现代码
Nov 08 Python
Python中自定义函数的教程
Apr 27 Python
浅析python3中的os.path.dirname(__file__)的使用
Aug 30 Python
Django发送邮件和itsdangerous模块的配合使用解析
Aug 10 Python
使用python批量修改文件名的方法(视频合并时)
Mar 24 Python
在python中创建指定大小的多维数组方式
Nov 28 Python
linux环境下安装python虚拟环境及注意事项
Jan 07 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
用python计算文件的MD5值
Dec 23 Python
python可视化大屏库big_screen示例详解
Nov 23 Python
使用Python开发冰球小游戏
Apr 30 Python
python使用锁访问共享变量实例解析
Feb 08 #Python
Python异常对代码运行性能的影响实例解析
Feb 08 #Python
Python科学计算包numpy用法实例详解
Feb 08 #Python
Python多进程并发与多线程并发编程实例总结
Feb 08 #Python
Python的CGIHTTPServer交互实现详解
Feb 08 #Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 #Python
python实现二叉查找树实例代码
Feb 08 #Python
You might like
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
基于header的一些常用指令详解
2013/06/06 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
php数组函数array_key_exists()小结
2015/12/10 PHP
JS可以控制样式的名称写法一览
2014/01/16 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
javascript实现计算器功能
2020/03/30 Javascript
Nuxt.js 静态资源和打包的操作
2020/11/06 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
python脚本爬取字体文件的实现方法
2017/04/29 Python
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
解决Python logging模块无法正常输出日志的问题
2020/02/21 Python
Python生成器常见问题及解决方案
2020/03/21 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
荷兰DOD药房中文官网:DeOnlineDrogist
2020/12/27 全球购物
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
服务员岗位职责
2014/01/29 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
信访维稳承诺书
2015/05/04 职场文书
李强优秀员工观后感
2015/06/16 职场文书
二十年同学聚会感言
2015/07/30 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
话题作文之关于呼唤
2019/11/29 职场文书