Доработки по генерации БД - в процессе

This commit is contained in:
2025-12-08 18:26:10 +03:00
parent 7f97654f0a
commit c95dab6478
6 changed files with 59 additions and 9 deletions
+17
View File
@@ -0,0 +1,17 @@
# Временное ТЗ по блоку bookings (для текущей разработки)
_Этот файл внутренний, удалить перед итоговой сдачей._
- Контейнер `bookings-db` — отдельный сервис Postgres из `docker-compose.yml`, база по умолчанию `demo` (из upstream demodb), без переименований.
- Доступ снаружи не блокируем (порт `5434` по умолчанию), чтобы позже читать через PXF и подключаться из Greenplum.
- Инициализация (`make bookings-init`): поднимает контейнер, клонирует demodb (без автопатчей), запускает `install.sql` как есть; генерация стартовых данных должна проходить штатными `generate/continue`.
- Генерация следующего дня: либо `make bookings-generate-day` вызывает `CALL continue(...)`, либо ручной вызов; скрипт `generate_next_day.sql` опционален и не должен менять upstream SQL (только тонкая обертка при желании).
- Исходники demodb: клонировать по требованию с закрепленным коммитом (чтобы не ловить неожиданные изменения). Добавить в `.gitignore`, если не коммитим. Завендорить в репо можно позже, если лицензия позволит.
- Документация: в README описать шаги (`bookings-init`, проверка данных, генерация дня), параметры `.env`, и что настройка PXF/ETL — следующий этап.
## Текущее состояние
- `Makefile` очищен: убраны автопатчи demodb; добавлены `DEMODB_REPO/DEMODB_COMMIT` с фиксированным хешем `d68de1…`, таргет снова исполняется. `BOOKINGS_JOBS` задаёт число джобов генерации (по умолчанию 1).
- `.gitignore` дополнен `bookings/demodb/` (клонируем по требованию, не коммитим).
- `bookings-init` теперь после установки сразу генерирует 1 день (дата из `BOOKINGS_START_DATE`, по умолчанию 2017-01-01), используя обертку `generate_next_day.sql`.
- `generate_next_day.sql` принимает `:jobs` и ожидает завершения `busy()`, закрывая dblink.
- Генерация через `make` надо подтвердить повторно (в DBeaver генерация работает, но медленно на больших окнах; по умолчанию делаем сутки, далее — по одному дню через `bookings-generate-day`).