# shared-postgres follow-up: репозиторий ↔ новая раскладка postgres прода **Задача.** 2026-10-05 координатор физически разделил два инстанса postgres на prod-vm: - `shared-postgres` (`~/shared-postgres/docker-compose.yml`, контейнер `shared-postgres`, порт `127.0.0.1:5434`, том `food-market-postgres-data` *external*). Внутри — ЧУЖИЕ боевые базы: `sklad`, `purchase`, `calcman`, `calcman_staging`, `makesales`, плюс мусорная старая `food_market` (повреждена, не восстанавливаем). Проект compose — `shared-postgres`, не наш, живёт отдельно. - `food-market-prod-postgres` (`~/food-market/deploy/docker-compose.yml` на prod-vm, контейнер `food-market-prod-postgres`, порт `127.0.0.1:5437`, том `food-market-prod-postgres-data`). Это НОВЫЙ собственный postgres прода food-market. Пока не запущен — прод-API лежит. Старый compose прода (project `deploy`, контейнер `food-market-postgres`, том `food-market-postgres-data` на тех же данных) **более не существует**. Простой при разделении — 12 секунд, соседи живы. Бэкап: `docker-compose.yml.bak-20261005` на prod-vm. Теперь нужно догнать репозиторий (шаблоны, guards, скрипты, доки), чтобы следующий деплой из main не воскресил старую раскладку, а любой `docker exec` в `shared-postgres` из кода food-market был бы невозможен. **Правила на будущее** - Прод food-market использует `food-market-prod-postgres` / том `food-market-prod-postgres-data` / порт `127.0.0.1:5437`. - `shared-postgres` **не принадлежит проекту food-market**. Его `container_name`, том и порт — запрещённые паттерны в наших compose/скриптах. - Том `food-market-postgres-data` — исторический для `shared-postgres`, в food-market compose его быть не должно (чужие данные). ## Чеклист - [x] 1. Шаблон репо `deploy/docker-compose.yml` приведён к прод-файлу (контейнер/том/порт прода). Добавлен `deploy/shared-postgres/docker-compose.yml` как документация соседнего compose-проекта (управляется отдельно). - [x] 2. Guards расширены: `~/deploy-stage.sh` и `~/quality-watchdog.sh` (+их копии в репо, если есть) запрещают стенду `shared-postgres`, `food-market-prod-postgres`, `food-market-prod-postgres-data`, порты `5434`/`5437`; проду — том `food-market-postgres-data`. - [x] 3. Скрипты и доки: `deploy/food-market-backup.sh`, `deploy/anonymize-prod.sh`, `deploy/db-schema-diff.sh`, `docs/RUNBOOK.md`, `docs/backup-restore.md` указывают на `food-market-prod-postgres` вместо старого `food-market-postgres`; RUNBOOK явно говорит «shared-postgres не наш». - [x] 4. Проверка на prod-vm: `docker compose -f ~/food-market/deploy/docker-compose.yml config` и `docker compose ps -a` не упоминают `shared-postgres`; `grep` по репе — ни один скрипт не делает `docker exec` в `shared-postgres`. Прод не запускается, `shared-postgres` и чужие базы не трогаются, `global.json` и gateway nginx вне скоупа.