django 在新建数据库时,出现了数据库的结构与自己定义的不一致,极度怀疑人生

1.出现错误:TypeError: int() argument must be a string, a bytes-like object or a number, not 'datetime.datetime'

2.出现的原因在于在models.py增加了其他的ForeignKey

3.运行python manage.pu makemigrations 时,提示增加默认值,

 

4。根据提示输入一直错误,输入timezone.now 问题也存在

 

5.此时运行python manage.py migrate 则会出现如题问题

6.此时怀疑时外键问题,或者models.py中的models.DateTimeField()类型错误,一直注释相应的代码调试,问题依然存在,此时距离问题的发现已经有3个小时了,没有办法后,打算将关于外键的和models.DateTimeField全部注释掉,且注释多个model,只留一个model(model即models.py中的类)

7.此时将django 的默认数据库db.sqlite3中的表:django_migrations 记录清空,不断执行python manage.py makemigrations ,根据提示删除数据库相应的表(需根据提示按顺序删除),提示语如下图:

 

8,根据提示删除所有该删除的表格后,执行python manage.py makemigrations,发现表格结构,仍然和以前的一模一样,并没有根据 我的models.py中的代码生成数据结构,数据库结构仍然有被注释的代码,此时极度怀疑人生了,且执行了几遍该问题仍然存在,后来在stackoverflow(链接) 一个不起眼的答案中发现了在 项目中有个文件夹为

9.在这个文件夹中存放着数据库结构,所以当新建数据库时这些文件会被再次应用(旧的数据库结构),恍然大悟为什么创建新的数据库时创建了旧的结构,处理方式是:删除migrations 文件夹下的所有文件,此时再次新建数据库就无问题了,同时题目描述的问题也能解决了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值