如何在不更改迁移文件的情况下添加默认值"false"的新布尔列?



我想在我的EF模型中添加一个新属性。该属性称为"已删除",应具有默认值" false"。数据库中的所有先前条目都需要分配此默认值。我正在使用自动迁移,因此无法更改迁移中的启动和下降功能(至少我知道(。

我试图在组类中创建新属性,但是当SQL代码在PSQL中运行(ALTER TABLE "dbo"."Group" ADD "Deleted" boolean NOT NULL(时,我会得到错误

ERROR: column "Deleted" contains null-values

请注意,我无法拦截此呼叫,并在SQL命令中插入约束,它在自动迁移中被调用。我已经查看了此解决方案,但是由于我不使用手动迁移,因此我永远没有机会编辑迁移文件。任何技巧都得到了极大的批准!我已经寻找了许多解决方案,包括使用自定义迁移SQL发电机,但它们都没有起作用。问题似乎是,数据库表中的所有现有条目都将null分配为"已删除"的值。

您尝试的请求缺少默认值的零件。

您应该查看此PostgreSQL教程页面。
给定的信息接近结束时,以下请求对您有用:

ALTER TABLE "dbo"."Group" ADD "Deleted" boolean NOT NULL DEFAULT 'false'

如果您无法访问迁移(在这里是这种情况(,则可以尝试将列添加为可将其列出的布尔值列,然后使用SQL更新整个表格。

最新更新