fix(tradein/deploy): миграции ДО подъёма app-контейнеров + manifest-инвариант (#2216) #2228

Merged
lekss361 merged 1 commit from fix/tradein-migrations-before-up into main 2026-07-02 21:03:38 +00:00

1 commit

Author SHA1 Message Date
bot-backend
6409b5fdf7 fix(tradein/deploy): миграции ДО подъёма app-контейнеров + инвариант manifest (#2216)
All checks were successful
CI Trade-In / changes (pull_request) Successful in 10s
CI / changes (pull_request) Successful in 11s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 1m42s
deploy-tradein.yml: up только postgres → pg_isready-wait (30×2s) → весь блок
миграций → затем up browser/backend/frontend(/scraper). Сбой миграции = exit 1
до нового кода, старые контейнеры остаются на консистентной паре код↔схема.
Удалён docker restart tradein-backend (lifespan-hook теперь видит миграции
с первого старта; история PR #493/deploy-1156 сохранена в комментарии).

Реконсиляция «152 vs 131» из аудита не актуальна: прод _schema_migrations и
репо data/sql совпадают (154 == 154, diff пуст; проверено 2026-07-02).

Инвариант против rename-trap (tracking по bare-filename → переименование
применённой миграции = повторное выполнение на проде):
test_migrations_manifest.py + _manifest_applied.txt (154 имени) — red при
rename/rm применённой и при дубль-NN-префиксе новых (6 исторических дублей
084/108/113/121/124/130 grandfathered).

Refs #2216
2026-07-02 23:51:25 +03:00