Django开发系统,在已经进行过数据库迁移后,使用migration和migrate出现no changed问题

问题描述:Django开发系统,在已经进行过数据库迁移后,使用migration和migrate出现no changed问题

解决思路:在经过半天的研究之后,研究出偷梁换柱之大法,我是小白,以下完全是我个人的思考和解决方法,可能疏漏很多,方法也不是特别好。但可解一时之困惑,我想原理大致如此:在查阅了很多资料之后,我诊断原因应该如下,首先因为存在的缓存因素使得即使model中不写任何的内容,也会生成完整的表(按照很多博主的方法常识,而我始终没办法找出所有影响此行为的缓存并清除),而当我删除掉migarations文件下的0001_initial.py之后再进行数据迁移就会报错:django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applied before its dependency blog.0001_initial on database ‘default’.并且无法解决。这说明0001_initial.py应该直接决定了生成表的方法:并由它作为迁移过程中决定性的一环影响着整个迁移过程

解决方法:重新建一个项目,重新写一次model(增删改成我所需要的model内容),在此表中新写出我想要迁移的model.py。在其中进行migration得到该项目的0001_initial.py,之后比对原来项目的0001_initial.py和新项目的0001_initial.py,进行增补修改,同时在model.py中也增删改成我所需要的model内容。之后删掉数据库中的所有表(注意!!:此法虽然会在后续过程完成后得到新的表但是会删除数据:删库行为怎么还会留下数据,要迁移备份的应该要备份,我是小白做毕业设计,可能考虑的不周全)。再进行migrate,(理论上应该也可以只删除数据库中:auth和your_programename【项目名称】下的所有表,以保留原有表中的数据,这里我没有具体实验过了)

做过的其他尝试:删过0001_initial.py,删过migration文件夹,删过.ideal都不好使。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值