[bug][migrations] develop-билд 21:48 добавляет миграцию задним числом (20260627T130000-ai-chat-runs) — kysely «corrupted migrations», прод в crash-loop (502) #361
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Суть
Свежий образ
ghcr.io/vvzvlad/gitmost:develop(билд 2026-07-04 21:48 UTC, digestsha256:85b08a3a2e1ae61d18023fc8deab38df8c19bab824d6c6be33846ceb6252f786) содержит новую миграцию с таймстампом задним числом:20260627T130000-ai-chat-runs. Kysely в ordered-режиме отказывается стартовать, приложение падает на bootstrap, контейнер в crash-loop, docs.vvzvlad.xyz отдаёт 502 (watchtower подтянул билд в 21:51 UTC).Почему
Прод-БД уже выполнила (хвост
kysely_migrationпо времени выполнения):20260627T120000-share-aliases-one-per-page20260702T120000-ai-chat-page-snapshot20260703T190000-comment-suggestions20260704T120000-client-metricsНовая
20260627T130000-ai-chat-runsсортируется между уже выполненными20260627T120000-…и20260702T120000-…→ нарушение инварианта kysely «новая миграция всегда алфавитно после последней выполненной».Что нужно
Переименовать миграцию в актуальный таймстамп (например
20260705T090000-ai-chat-runs) и перезапушить develop. Ничего больше: прод восстановится сам — watchtower подтянет исправленный билд (интервал ~2 c), миграция выполнится как новая.Контекст от инфры
client_metricsсоздана, GRANT дляgrafana_roмиграция выдала сама, телеметрия отвечала 200).gitmost-app, панели, baseline).Прод восстановлен: билд 22:02 UTC поднялся штатно (container restarts=0, миграции прошли), docs.vvzvlad.xyz → 200. Закрывающий раунд приёмки метрик пройден:
up{job="gitmost-app"}==1, все семейства метрик на месте, виталы пишутся вclient_metrics(проверено валидным синтетическим событием). Инцидент в netmap снят. Закрываю.