fix(bookings): добавлено явное ограничение генератора на jobs=1

- Зачем:
  - исключить нестабильные режимы генератора, в которых bookings может перестать пополняться.
  - сделать причину ошибки понятной студенту сразу при запуске команд и SQL-скриптов.
- Что:
  - добавлен precheck `bookings-check-jobs` в Makefile и подключён к `bookings-init` и `bookings-generate-day`.
  - добавлены явные проверки `bookings.jobs = 1` в `bookings/generate_next_day.sql` и `sql/src/bookings_generate_day_if_missing.sql`.
  - обновлена документация и `.env.example`: зафиксировано, что в стенде поддерживается только `BOOKINGS_JOBS=1`.
- Проверка:
  - uv run make fmt.
  - uv run make test.
  - env BOOKINGS_JOBS=2 make bookings-init.
  - env BOOKINGS_JOBS=2 make bookings-generate-day.
  - make bookings-init.
  - make bookings-generate-day.
This commit is contained in:
2026-02-28 22:00:27 +03:00
parent a10cbff906
commit ffd9585ef4
8 changed files with 28 additions and 6 deletions
+9 -3
View File
@@ -8,7 +8,7 @@ BOOKINGS_START_DATE ?= 2017-01-01
BOOKINGS_INIT_DAYS ?= 1
.PHONY: up stop down clean airflow-init logs gp-psql ddl-gp \
bookings-clone-demodb bookings-init bookings-psql bookings-generate-day \
bookings-check-jobs bookings-clone-demodb bookings-init bookings-psql bookings-generate-day \
dev-setup dev-sync dev-lock test lint fmt clean-venv build
SHELL := /bin/bash
@@ -61,7 +61,13 @@ bookings-clone-demodb:
fi; \
fi
bookings-init: bookings-clone-demodb
bookings-check-jobs:
@if [ "$(BOOKINGS_JOBS)" != "1" ]; then \
echo "Поддерживается только BOOKINGS_JOBS=1. Измените .env и повторите команду." >&2; \
exit 1; \
fi
bookings-init: bookings-check-jobs bookings-clone-demodb
docker compose -f docker-compose.yml up -d bookings-db
docker compose -f docker-compose.yml exec bookings-db bash -lc '\
until PGPASSWORD="$$POSTGRES_PASSWORD" pg_isready -U "$$POSTGRES_USER" -d "$$POSTGRES_DB" -h localhost; do \
@@ -88,7 +94,7 @@ bookings-init: bookings-clone-demodb
bookings-psql:
docker compose -f docker-compose.yml exec bookings-db bash -lc 'PGPASSWORD="$$POSTGRES_PASSWORD" psql -U "$$POSTGRES_USER" -d demo'
bookings-generate-day:
bookings-generate-day: bookings-check-jobs
docker compose -f docker-compose.yml up -d bookings-db
docker compose -f docker-compose.yml exec bookings-db bash -lc '\
until PGPASSWORD="$$POSTGRES_PASSWORD" pg_isready -U "$$POSTGRES_USER" -d "$$POSTGRES_DB" -h localhost; do \