NotariumҚұжаттама
Құжаттама нұсқасы: latest
KZ

Дерекқор

Notarium-да жазбалар — файлдар, ал іздеу индексі мен граф солардан қайта құрастырылады. Бірақ күйдің бір бөлігін файлдардан шығарып алуға келмейді: оны бөлек метадеректер (meta) дерекқоры сақтайды. Әдепкіде бұл — деректер түбіріндегі SQLite-файл, <DATA_DIR>/meta.db; ал META_DB_URL айнымалысы сыртқы Postgres-ке сілтеу үшін ғана керек.

Метадеректер дерекқоры нені сақтайды

ДеректерНеге файлдардан емес
Жазба идентификаторларыnotarium-id ↔ жол тізілімі: move/rename-нен аман өтеді.
Нұсқалар тарихыРевизиялар журналын (нұсқа снапшоттары, түзету қайдан келгені) git емес, қосымшаның өзі жүргізеді.
Пайдаланушылар мен рұқсаттарЕсептік жазбалар, рөлдер, мүшелік, токендер.
Қайта атау тарихыКеңістіктер мен жобалардың ескі слагтарының алиастары — бұрынғы мекенжайлар әрі қарай резолвтеле берсін деп.

Мұның бәрін тек .md-файлдардан қалпына келтіру мүмкін емес — сондықтан метадеректер дерекқоры сақтық көшірмеге міндетті түрде кіреді. Кеңістіктер тізілімі де осы дерекқорда бар, бірақ ол — туынды: кеңістіктің бірегейлігі оның түбіріндегі маркер-файлда тұрады және сканмен қалпына келеді (File-first). Қозғалтқыштың туынды индекстері (<DATA_DIR>/engine) жоғалса, келесі іске қосылғанда файлдардан жай ғана қайта құрастырылады.

Нұсқалардың өзі мен олардың шығу тегі туралы — Тұжырымдамалар: нұсқалар тарихы.

Схема және миграциялар

Метадеректер дерекқорының схемасын қосымшаның өзі жүргізеді: миграциялар іске қосылғанда қолданылады, олар үшін бөлек пәрмен жоқ. Дерекқордың өз ішінде қолданылған миграциялар тізілімі жатыр — жинақ немен ісі бар екенін содан біледі.

Іске қосылу дәл үш күйді ғана қабылдайды:

  • бос дерекқор — базалық схема орнатылады, тізілімдегі жазба сол транзакцияның өзінде жасалады;
  • тізілімі күтілгеннің дәл префиксі болатын дерекқор — нұсқалар, атаулар және бақылау сомалары салыстырылады, содан кейін жетіспейтін миграциялар қолданылады;
  • тізілімі жоқ бос емес дерекқор — іске қосылу жабық күйде құлайды: схемаға бірде-бір өзгеріс енгізілмей, қосымшаның бірде-бір сұранысы орындалмай тұрып.

Соңғысы — әдейі солай. Жинақ бөтен дерекқордың нұсқасын болжамайды және тізілімге белгіні өзі қоймайды: бұл деректерді үнсіз бүлдірер еді. Қолыңызда дәл сондай дерекқор болса (мысалы, базалық схемадан да ескі дана), алдымен оны өз нұсқасының штаттық рәсімімен жаңартып, тексеріп алыңыз, тек содан кейін ғана осы шекарадан өткізіңіз.

Кері қайтару — бұл сақтық көшірмеден қалпына келтіру

Notarium-да деректерді кері қайтару тетігі — тексерілген архив, кері бағыттағы SQL-миграциялар емес. Сақтық көшірмені жаңартудан бұрын жасап, тексеріп алыңыз: Сақтық көшірме және қалпына келтіру.

SQLite (әдепкі)

Баптаусыз: әдепкіде метадеректер дерекқоры — бұл sqlite:<DATA_DIR>/meta.db, яғни /data томындағы файл. Бөлек сервис қажет емес, ештеңе баптаудың керегі жоқ. Мұның өзі бір контейнерде жұмыс істейтін жеке дана мен шағын команда үшін жеткілікті.

Postgres (команда мен ортақ күй үшін)

Күйді контейнерден тыс шығару үшін — ортақ сақтау орны, ақаулыққа төзімділік немесе қызмет көрсету мақсатында — Postgres-ті көрсетіңіз:

# .env
META_DB_URL=postgres://user:pass@db:5432/notarium

Postgres күй контейнердің тіршілік циклінен тәуелсіз өмір сүруі керек болғанда қажет. Бұл ретте жазбалардың өзі бұрынғыдай <DATA_DIR>/spaces астындағы файлдар болып қала береді — дерекқорға тек солардан шығарып алуға келмейтіні ғана түседі.

password режимі метадеректер дерекқорына сүйенеді

AUTH_MODE=password режимінде метадеректер дерекқоры есептік жазбалар мен токендер үшін керек — және ол әдепкіде-ақ бар (деректер түбіріндегі SQLite). META_DB_URL-ды бөлек орнатудың қажеті жоқ; оны тек Postgres-ке көшу үшін көрсетеді. Метадеректер дерекқорынсыз тек AUTH_MODE=none ғана жұмыс істейді. Аутентификация бөлімін қараңыз.

Бір дана

Күйді Postgres-ке шығару өздігінен көлденең масштабтауды қоспайды: Notarium бір дана ретінде жұмыс істейді, жүктеме теңгергіш артындағы бірнеше данаға қолдау көрсетілмейді (Өнімдік орта бөлімін қараңыз).