refactor: separate migrations from API runtime
This commit is contained in:
+7
-4
@@ -38,7 +38,8 @@ docker run --rm caddy:2.10.2-alpine caddy hash-password --plaintext 'ОТДЕЛ
|
||||
```bash
|
||||
docker compose --env-file .env.production -f compose.production.yaml config --quiet
|
||||
docker compose --env-file .env.production -f compose.production.yaml build
|
||||
docker compose --env-file .env.production -f compose.production.yaml up -d
|
||||
docker compose --env-file .env.production -f compose.production.yaml run --rm migrate
|
||||
docker compose --env-file .env.production -f compose.production.yaml up -d --no-deps api web community-scheduler
|
||||
docker compose --env-file .env.production -f compose.production.yaml ps
|
||||
curl -fsS https://rf4spotter.ru/health
|
||||
curl -fsS https://rf4spotter.ru/ready
|
||||
@@ -64,7 +65,7 @@ curl -fsS -H "Authorization: Bearer $ADMIN_TOKEN" -o rf4spotter-diagnostics.json
|
||||
|
||||
По умолчанию временно используются только loopback-порты `14321` и `18000`; PostgreSQL и MinIO наружу не публикуются. Контур и volumes удаляются после проверки. Drill успешно пройден 6 сентября 2026 года.
|
||||
|
||||
API-контейнер перед стартом применяет Alembic-миграции и запускает идемпотентный seed. В production он добавляет только минимальные справочники и точки; демонстрационные уловы жёстко отключены настройкой `SEED_DEMO_DATA=false`.
|
||||
Одноразовый `migrate` применяет Alembic до rollout API; при ошибке новый runtime не запускается. API при старте выполняет только идемпотентный seed: в production он добавляет минимальные справочники и точки, а демонстрационные уловы жёстко отключены `SEED_DEMO_DATA=false`.
|
||||
|
||||
Проверка TLS и маршрутизации:
|
||||
|
||||
@@ -92,12 +93,14 @@ docker compose --env-file .env.production -f compose.production.yaml exec api py
|
||||
```bash
|
||||
git pull --ff-only
|
||||
docker compose --env-file .env.production -f compose.production.yaml build
|
||||
docker compose --env-file .env.production -f compose.production.yaml up -d
|
||||
./deploy/backup.sh /srv/rf4-backups
|
||||
docker compose --env-file .env.production -f compose.production.yaml run --rm migrate
|
||||
docker compose --env-file .env.production -f compose.production.yaml up -d --no-deps api web community-scheduler
|
||||
docker compose --env-file .env.production -f compose.production.yaml ps
|
||||
curl -fsS https://rf4spotter.ru/ready
|
||||
```
|
||||
|
||||
Перед обновлением со сменой схемы обязателен backup PostgreSQL. Не удаляйте volumes и не используйте `down -v`.
|
||||
Перед обновлением со сменой схемы обязателен backup PostgreSQL. Если миграция не началась или схема обратно совместима, верните предыдущий Git commit/images и повторите rollout без downgrade Alembic. Если миграция изменила данные несовместимо, остановите API/web и восстановите сделанный перед release backup через `restore.sh`, затем запустите предыдущую ревизию. Не удаляйте volumes, не используйте `down -v` и не выполняйте `alembic downgrade` без отдельно проверенного плана конкретной миграции.
|
||||
|
||||
## 6. Резервное копирование и восстановление
|
||||
|
||||
|
||||
Reference in New Issue
Block a user