Django修改Models(新增属性)后无法成功迁移(无赋值)的简单处理方法

当你在某个models下添加了新属性,而在随后执行makemigrations后弹出需要
1)立即提供一次性默认值
2)让我在models.py中添加一个默认值

(venv) D:\project\server>python manage.py makemigrations
You are trying to add a non-nullable field 'file_Attribution' to filemodel without a default; we can't do that (the database ne
eds 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: 2

这时选2退出,我们在新添加的属性值内加一个 default=’ something’

添加前

file_Attribution = models.CharField(max_length=255)

添加后

file_Attribution = models.CharField(max_length=255, default='something')

然后依次执行

python manage.py makemigrations
python manage.py migrate

迁移完成后再改回

file_Attribution = models.CharField(max_length=255)

PS:貌似挺绕的,但是为了不打SQL语句,倒是还行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值