django删除数据库中的表后migrate迁移不报错但没有生成表的解决办法

关于django-mysql删除与创建表

有时在迁移models.py后需要重新改正数据库中的属性,在删除表之后发现即使迁移成功依然没有映射到新的表中。
这里提供经验分享

mysql端:
在mysql终端中执行一下语句:

show databases;

在这里插入图片描述

这一步看见所有的数据库,而后根据所选用的数据库删除表。执行下列语句进入数据库查看数据库中的表并删除选择表。

use my_db
show tables;
drop table pupil;

在这里插入图片描述

(这个表我已将所要删除的pupil表删除了。)
执行完上述语句后pupil表已删除,在迁移的时候会有记录留存,需要删除django_migrations中的记录来实现django映射。
执行以下语句查看djanog_migrations中的数据。

select * from django_migrations;

在这里插入图片描述

而后删除最后一条关于项目subject_choose的记录数据即可。执行下列语句。

delete from django_migrations where id = 25;

至此mysql端的处理已经结束,现在需要对python端执行下述操作:
在这里插入图片描述

这里手动删除migrations文件夹下除了__init__.py中的所有迁移文件。
而后执行以下命令:

python manage.py makemigrations
python manage.py migrate

在这里插入图片描述

重新创建成功后可以查看表了。命令同上述sql端。
在这里插入图片描述

可以发现pupil表重新创建成功了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值