Схема — Инициализация баз данных

Инициализация баз данных

← К руководству
100%
Колесо масштаб · Перетаскивание навигация
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