Django更新models数据库结构

本文介绍了在Django中修改models后如何更新数据库结构,提供了两种方法:一是删除并重构,包括注释模型、删除迁移文件、重建数据库等步骤;二是直接在原结构上更新,通过设置字段默认值避免错误。这两种方法能帮助开发者顺利更新数据库结构。

有时候在我们使用Django设计了models中的数据库结构,并且已经同步了数据库之后,我们突然想在数据表中更新或者增加新的字段,也就是需要修改数据库的结构,会出现以下的问题:

C:\Users\Administrator\Desktop\Web开发\Django_Demo\jkxy>python manage.py makemigrations
You are trying to add a non-nullable field 'grade' to student without a default; we can't do that (the dat
abase needs something to populate existing rows).
Please select a fix:
 1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
 2) Quit, and let me add a default in models.py
Select an option:

就是在我们在models中修改了表的字段后,进行python manage.py makemigrations同步数据库时会出现上面报错,会导致数据库结构更新失败

解决方法如下:

第一种方式:先删除再重构

1、删除数据库对应的数据表

注意:在这里可以不用暴力删除数据表,可以利用django的migrations进行,操作如下:

1.1、首先将自己需要重构的数据表类的models注释掉,然后输入命令python manage.py makemigrations,这个时候migration会自动记录删除数据表的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值