graph TD
START["docker compose up\nКонтейнер postgres"] --> INIT{"Том postgres_data\nсуществует?"}
INIT -->|Нет — первый запуск| SH00["00-init-tablespaces.sh\nСоздание директорий\nmon_data, mon_idx,\nrefr_data, refr_idx"]
INIT -->|Да| SKIP["Init-скрипты\nпропускаются\n(данные на томе)"]
SKIP --> HEALTHY
SH00 --> SQL00["00-init-tablespaces.sql\nCREATE TABLESPACE\nна БД ref"]
SQL00 --> EXT01["01-extensions-ref.sql\nРасширения: postgis,\npgcrypto, http,\npg_background, pg_cron..."]
EXT01 --> TS01["01-init-timescaledb.sql\nCREATE DATABASE refts\n+ TimescaleDB"]
TS01 --> JOFL02["02-init-jofl-schema.sql\nСхема jofl\n~37 таблиц, ~162 функции"]
JOFL02 --> MON03["03-init-mon-schema.sql\nСхема mon\n~55 таблиц, ~25 функций"]
MON03 --> BB04["04-init-bb-schema.sql\nСхема bb\n~105 PL/pgSQL функций"]
BB04 --> REFR05["05-init-refr-schema.sql\nСхема refr\n~372 таблицы, ~531 функция"]
REFR05 --> META06["06-init-jofl-meta.sql\nМетаданные JOFL:\nменю, роли, окна,\nфильтры, словари"]
META06 --> REF06Z["06z-init-refr-ref-data.sql\nСправочники:\nстраны, ОКОПФ"]
REF06Z --> SEED07["07-additional-data.sql\nSeed: организация,\nаккаунт REF_ADM,\nроли, константы,\nрегионы, последовательности"]
SEED07 --> HEALTHY["PostgreSQL healthy\n✓ pg_isready\n✓ refr.account id=1"]
HEALTHY --> FLYWAY["ts-loader: Flyway\nV1.1–V1.6\nСхема monraw,\nгипертаблицы в refts"]
HEALTHY --> SERVICES["Запуск остальных\nсервисов"]
FLYWAY --> OPTIONAL["Опционально:\nretention_policy\ncompression_policy"]
style START fill:#dbeafe,stroke:#2563eb
style HEALTHY fill:#dcfce7,stroke:#16a34a
style SKIP fill:#fef3c7,stroke:#f59e0b
style SERVICES fill:#dcfce7,stroke:#16a34a