django 中 migrate无效的问题

问题:
原来已经存在的模型类,新增加了一个字段之后,想重新建立模型类
迁移时报错了

解决方式:

1、 首先将各个子应用 app 下 migrations 文件夹中除 init.py 之外,其他文件全部删掉。
2、 先进到数据库中,

python manage.py dbshell 

删除 django_migrations 表中,迁移时出错的子应用的所有记录

delete from django_migrations where app='your_appname';

3、先注释掉 ,模型类新增加的那行

python manage.py makemigrations cases
python manage.py migrate cases --fake

显示 : Applying cases.0002_remove_cases_service_type…FAKED

4、再取消注释

python manage.py makemigrations cases
python manage.py migrate cases

谈谈机制:
migrations机制有两个指令,第一个是makemigrations,第二个是migrate,生成migrations代码的makemigrations指令是用models里面的model和当前的migrations代码里面的model做对比,如果有新的修改,就生成新的migrations代码。
migrate指令是用migrations目录中代码文件和django数据库djaong_migrations表中的代码文件做对比,如果表中没有,那就对这些没有的文件按顺序及依赖关系做migrate apply,然后再把代码文件名加进migrations表中。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值