Django中数据库表的删除和重建的正确方法和问题的解决

1.起因

今天因为需要为一个Django中已经存在的model类添加元数据,所以直接在db.sqlite3中删除了该model类的映射表,但是在重新迁移的时候出现了问题:迁移后没有删除的表

(后文有Django中删除和重建数据库中关于models类的映射数据库表的正确方法)

2.解决方式

查看了网上其他博客后:大多建议删除 django_migrations表并删除migration目录下的0001_initial.py(并不能解决问题):

因为重新迁移时,并不能成功的映射新的数据库表:

这里只有删除main下,除了sqlite_master和sqlite_sequence表,的其他表然后重新执行

python manage.py makemigrations
python manage.py migrate
才能迁移成功。

3.正确迁移

Django中删除和重建数据库中关于models类的映射数据库表的正确方法:

在Django中删除models类的映射数据库表需要在models.py中剪切或删除对应的models类:然后在控制台中执行:

python manage.py makemigrations(Django会重新对照你的models类与数据库中的映射表,如果你的model类被删除,则Django会生成一个删除迁移)
python manage.py migrate(执行删除迁移,删除数据库中对应的model映射表)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值