Во-первых, я почти уверен, что об этом, должно быть, уже спрашивали раньше, но мне не удалось найти точный ответ через Google, поэтому, пожалуйста, потерпите меня.
Я унаследовал проект фреймворка с первым кодом, который использует миграции. Я добавил в таблицу столбец (не допускающий значения NULL), и мне нужно вставить в этот столбец значения для всех существующих записей, которые не являются значением по умолчанию:
public override void Up()
{
AddColumn("dbo.QuestionType", "Duplicated", c => c.Boolean(nullable: false, defaultValue: false));
Sql("UPDATE dbo.QuestionType SET Duplicated = 1");
}
Однако изначально в эту таблицу были добавлены некоторые исходные данные:
context.QuestionTypes.AddOrUpdate(
e => e.Name,
new QuestionType() { Name = QuestionTypeNames.INTERVIEWER});
это означает, что оператор обновления немедленно перезаписывается данными в вызове метода Seed (вызываемого после каждой миграции).
Мои вопросы:
- «Безопасно» ли просто добавить дополнительное значение в исходные данные (или это приведет к поломке всего для более ранних миграций, когда новый столбец не существует в базе данных).
- В качестве альтернативы, есть ли способ предотвратить запуск метода Seed после этой миграции (и всех последующих миграций).
Спасибо