fix(migrations): catch-up Phase3b_AddShowDescriptionOnProduct
Some checks are pending
CI / POS (WPF, Windows) (push) Waiting to run
CI / Backend (.NET 8) (push) Successful in 45s
CI / Web (React + Vite) (push) Successful in 36s
Docker API / Build + push API (push) Successful in 43s
Docker API / Deploy API on stage (push) Successful in 17s

Колонку organizations.ShowDescriptionOnProduct логически вводила миграция
Phase3b_DropProductShelfLifeDays, но я дописал её туда задним числом
после того как миграция уже применилась на стенде. EF проверяет только
__EFMigrationsHistory.MigrationId, не содержимое — поэтому колонка
не создалась, а после деплоя API падал в DevDataSeeder с
«column o.ShowDescriptionOnProduct does not exist».

Правильное лекарство — отдельная догоняющая миграция с idempotent
ALTER TABLE … ADD COLUMN IF NOT EXISTS. На стенде колонка уже добавлена
вручную и запись в истории миграций есть; пайплайн пройдёт мимо неё.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
nns 2026-04-26 01:10:36 +05:00
parent c9f17b80fd
commit 458797f417
2 changed files with 1923 additions and 0 deletions

View file

@ -0,0 +1,26 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace foodmarket.Infrastructure.Persistence.Migrations
{
/// <summary>organizations.ShowDescriptionOnProduct (default false) — догоняющая
/// миграция. Колонку логически вводила Phase3b_DropProductShelfLifeDays, но
/// она была дописана туда задним числом уже после применения миграции на
/// стенде, поэтому на части баз колонки нет. Добавляем идемпотентно.</summary>
public partial class Phase3b_AddShowDescriptionOnProduct : Migration
{
protected override void Up(MigrationBuilder b)
{
b.Sql(@"
ALTER TABLE public.organizations
ADD COLUMN IF NOT EXISTS ""ShowDescriptionOnProduct"" boolean NOT NULL DEFAULT false;
");
}
protected override void Down(MigrationBuilder b)
{
b.Sql(@"ALTER TABLE public.organizations DROP COLUMN IF EXISTS ""ShowDescriptionOnProduct"";");
}
}
}