Как добавить новый логический столбец со значением по умолчанию «false» без изменения файла миграции? - PullRequest
1 голос
/ 24 июня 2019

Я хочу добавить новое свойство к объекту в моей модели EF.Свойство называется «Удалено» и должно иметь значение по умолчанию «ложь».Всем предыдущим записям в базе данных должно быть присвоено это значение по умолчанию.Я использую автоматическую миграцию, поэтому изменение функций Up и Drop в миграции невозможно (по крайней мере, я знаю об этом).

Я пытался просто создать новое свойство в классе группы, нокогда SQL-код запускается (ALTER TABLE "dbo"."Group" ADD "Deleted" boolean NOT NULL) в psql, я получаю ошибку

ERROR: column "Deleted" contains null-values.

Обратите внимание, что я не могу перехватить этот вызов и вставить ограничения в команду SQL, она вызывается при автоматической миграции. Я посмотрел на это решение , но поскольку я не использую ручную миграцию, у меня никогда не было возможности редактировать файл миграции.Любые советы очень ценятся!Я искал много решений, включая использование пользовательских генераторов миграции SQL, но ни одно из них не сработало.Кажется, проблема в том, что всем уже существующим записям в таблице базы данных присвоено значение null в качестве значения для «Удалено».

1 Ответ

1 голос
/ 24 июня 2019

В указанном вами запросе отсутствует деталь со значением по умолчанию.

Вы должны взглянуть на эту страницу учебника по PostgreSQL .
Учитывая информацию ближе к концу, для вас будет работать следующий запрос:

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

Если вы не можете получить доступ к Миграции (как это имеет место здесь), вы можете попытаться добавить столбец как логический столбец, допускающий значение NULL, а затем обновить всю таблицу с ложным значением, используя SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...