如何在不更改迁移文件的情况下添加具有默认值 "false" 的新布尔列?
How would I add new boolean column with default value "false" without changing migration file?
我想向我的 EF 模型中的对象添加一个新的 属性。 属性 称为 "Deleted" 并且应具有默认值 "false"。数据库中的所有先前条目都需要分配此默认值。我正在使用自动迁移,因此无法更改迁移中的 Up 和 Drop 功能(至少我知道)。
我试图在 class 组中创建新的 属性,但是当 SQL 代码是 运行 (ALTER TABLE "dbo"."Group" ADD "Deleted" boolean NOT NULL
) psql,我收到错误
ERROR: column "Deleted" contains null-values
。
请注意,我无法拦截此调用并在SQL命令中插入约束,它是在自动迁移中调用的。 I have looked at this solution 但由于我没有使用手动迁移,所以我从来没有机会编辑迁移文件。非常感谢任何提示!我已经寻找了许多解决方案,包括使用自定义迁移 SQL 生成器,但其中 none 有效。问题似乎是数据库 table 中所有已经存在的条目都被指定为 null
作为 "Deleted".
的值
您尝试的请求缺少默认值部分。
你应该看看 this PostgreSQL tutorial page。
鉴于接近尾声的信息,以下请求对您有用:
ALTER TABLE "dbo"."Group" ADD "Deleted" boolean NOT NULL DEFAULT 'false'
如果您无法访问迁移(这里就是这种情况),您可以尝试将该列添加为可为空的布尔列,然后使用 [= 将整个 table 更新为假值19=].
我想向我的 EF 模型中的对象添加一个新的 属性。 属性 称为 "Deleted" 并且应具有默认值 "false"。数据库中的所有先前条目都需要分配此默认值。我正在使用自动迁移,因此无法更改迁移中的 Up 和 Drop 功能(至少我知道)。
我试图在 class 组中创建新的 属性,但是当 SQL 代码是 运行 (ALTER TABLE "dbo"."Group" ADD "Deleted" boolean NOT NULL
) psql,我收到错误
ERROR: column "Deleted" contains null-values
。
请注意,我无法拦截此调用并在SQL命令中插入约束,它是在自动迁移中调用的。 I have looked at this solution 但由于我没有使用手动迁移,所以我从来没有机会编辑迁移文件。非常感谢任何提示!我已经寻找了许多解决方案,包括使用自定义迁移 SQL 生成器,但其中 none 有效。问题似乎是数据库 table 中所有已经存在的条目都被指定为 null
作为 "Deleted".
您尝试的请求缺少默认值部分。
你应该看看 this PostgreSQL tutorial page。
鉴于接近尾声的信息,以下请求对您有用:
ALTER TABLE "dbo"."Group" ADD "Deleted" boolean NOT NULL DEFAULT 'false'
如果您无法访问迁移(这里就是这种情况),您可以尝试将该列添加为可为空的布尔列,然后使用 [= 将整个 table 更新为假值19=].