Сообщество / Docker

«просто обновил» и postgres, который отказался читать свои данные

kate_ekb
Middle
Сообщения: 106
Репутация: 73
Дата регистрации:
12.08.2026
АВТОР ТЕМЫ13 окт. 2026 г., 09:01 (GMT+3)
Утро, кофе, сообщение от клиента: «сайт лежит, я ничего не трогал, только обновил». Это «ничего не трогал, только обновил» я слышала раз сто, так что даже не удивилась.

Захожу: postgres в рестартах, в логах FATAL: database files are incompatible with server. Открываю compose — а там image: postgres:latest. Вчерашний pull подтянул новый мажор, а каталог с данными остался от пятнадцатой версии. Postgres честно отказался читать свои же файлы, и я его понимаю.

latest — это не версия, это лотерея. В проде версия пинится жёстко: postgres:16-alpine, mariadb:11, что угодно конкретное. Обновление мажора — отдельная процедура с дампом и pg_upgrade, а не побочный эффект «просто обновил» во вторник утром.

Клиенту вернула данные из вчерашнего дампа, пересобрала на пинненой версии, записала в compose как положено. Полчаса работы, зато теперь он знает слово latest в лицо.

«Ничего не трогал» от клиента — это как «я уже подъезжаю» от таксиста: надеяться можно, верить нельзя)

Кто как держит версии — пин по тегу, по digest? Или живёте на latest и верите в людей?
0