Django和Python的bug心里历程

20180412更新

今天2018412号,一个月之后,又遇到了同样的问题,不过这次,我没有用一天时间,

我用了10分钟排查出了错误。补充一些心得。


作为一个写程序的小白,刚接触一些框架的时候,就会觉得,写框架的好牛逼,都是大佬,技术杠杠的,所以框架很好用。这段话前面没有问题,但是这个三段论的论断是有问题的。框架不可能没有bug,你首先要注意到这一点。然后你要注意到语言不可能没有bug,系统不可能没有bug,软件不可能没有bug,做得好bug就少,你就不容易遇到,反之也成立。

所以我在这里姑且猜测一下django的这个(今天遇到的)bug,(版本1.10.4,最早的版本是之前的2.0.3)。当你已经使用django建立了数据表之后,你再次修改了其中一个表,例如我们称之为t_table1,并且新建了一张表t_table2,在t_table2中使用t_table1作为外键,当你migrate时,程序报错,t_table1不存在。

解决方法是不要慌,慢慢处理,按照提示来操作,不要随便删除迁移数据和数据表,其实很简单。


1:版本

django2.0.3

Python3.5.2

mysql版本:Ver14.14 Distrib 5.5.44,for debian-linux-gnu(x86_64)

2:问题描述

在使用django带有的ORM建表,先是建立了一张app表,但是需要对其增加字段,一个datatime类型的,之后程序出现提示,建表出错。于是将整个表删除,依然错误,于是将整个数据库删除,依然错误。再将工程中自动生成的migrations下的文件删除,依然错误。

3:错误提示

mysql语法错误

ps:并且在我新建了一个django的项目后,并且在新建项目中使用和之前不同的数据库,不同的模型来重新使用django自带的ROM'建表。依然报相同的错误(请仔细理解这句话,重点是错误居然是相同的!!!)。


4:尝试解决

4.1:重启试试(重启电脑)--失败

4.2:重新安装django(相同版本)-- 失败

4.3:尝试去找到mysql建表语句的生成位置– 失败,技术不佳没找到

4.4:最后的挣扎,换到Python2.7上,安装相应模块。-- 成功


5:原因猜测

这里只能说是原因猜测,因为确实没有发现问题在哪里(失败)。

首先,不可能在系统缓存,因为已经重启了电脑。再来,因为执行这条语句(pythonmanage.pymigrate)时,相当于始终在执行之前失败的建表语句,而和现在需要执行的语句没有关系。所以问题存在于djangoPython中。django已经重新安装,但是不排除资源没有被清理完的情况(各位搬砖轻拍)。目前的解决是换到了Python2.7

体会到了老版本的稳定性和支持性确实比新版本好。


6:贴上网上的一些相同问题的解决办法,但是我并没有成功(捂脸)。

Django删除表遇到的一些错误:http://blog.csdn.net/gdky005/article/details/78271163

查看django执行过的sqlhttps://www.cnblogs.com/liuq/p/5946166.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值