Комментарии 3
А в базе это уже конкретная DDL-операция с блокировками, перепроверкой данных и неприятным вопросом: “а сколько строк в
Orders?”
Начиная с 11 постгреса (уже 8 лет) используется fast default, когда данные о значении по умолчанию пишутся в метадату таблицы в колонку pg_attribute.attmissingval. Это всё ещё требует эксклюзивной блокировки, но никакой проверки на количество строк в Orders нет. Таблица вообще не трогается.
С Database.Migrate() на локалке всё красиво, а в проде начинается совсем другая история. Особенно знакомая боль, когда одна маленькая миграция внезапно превращается в долгие блокировки и нервный просмотр логов. Разделять миграции и запуск приложения действительно намного спокойнее.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

EF Core миграции в проде: как Database.Migrate() на старте может превратить релиз в тревожную кнопку