nullable but not null
10 months ago
- #schema
- #database
- #migration
- 给模型添加新字段时通常先设为可空(nullable),以避免迁移期间的表锁定问题
- 更新应用逻辑填充该字段后,需要对现有记录执行回填作业
- 最后将字段设为非空的步骤常被遗忘,导致模式与数据不匹配
- 本应非空的字段保持可空状态会造成混淆、约束缺失和不必要的复杂性
- 提供的脚本通过检查实际空值比例,可识别可转为非空的可空字段
- 该脚本扫描模型中的可空字段,并计算含空值的行百分比
- 空值率为0%的字段应更新为非空,以提高模式准确性并简化代码
- 示例输出显示各字段的空值率,帮助识别需要模式清理的候选字段
- 修复这些问题能确保数据模型真实可信,改进验证机制,保持应用健康