django 对于数据已存在数据的表增加非空字段如何处理?

2021-01-13 14:45:13 +08:00
 rationa1cuzz
对于已经存在数据的表增加非空字段,makemigrations 会报错 You are trying to add a non-nullable field 'xx' to XXX without a default,有什么办法可以解决吗?还是说必须要给个默认值
1682 次点击
所在节点    Python
5 条回复
wuwukai007
2021-01-13 15:10:39 +08:00
null=True,blank=True
xpresslink
2021-01-13 15:10:57 +08:00
表增加非空字段必须要加 default:默认值,这可以是值或可调用对象。如果可调用,则每次创建新对象时都会调用它。
enomine
2021-01-13 15:13:38 +08:00
报错提示已经很明显了
从 MySQL 层面来讲,非空表加一列非空字段,如果没有设置默认值,那已经存在的那些数据新加这个字段应该填充什么数据呢?
IurNusRay
2021-01-14 09:05:32 +08:00
要么设置 null=True,要么手动设置一个默认值,比如 0 或者""
msy45
2021-01-14 11:51:28 +08:00
如果不需要默认值,migrate 完再把默认值取消再 migrate 一次

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/744562

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX