Iwu dị na docs/architecture/23-ops.md ngalaba 7 na
docs/architecture/07-data.md ngalaba 4.1. Nke a bụ usoro.
Nkwa na-eme ka ọ dị nchebe
Mwepụta R na-agba nke ọma megide schema R na schema R mwepu otu. A na-ekewa mgbanwe schema ọ bụla na expand, transition na contract:
- Expand: tinye kọlụm, tebụl ma ọ bụ index ọhụrụ. Koodu ochie na-eleghara ya anya.
- Transition, ma ọ dịkarịa ala otu mwepụta: koodu ọhụrụ na-ede ụdị abụọ ma na-agụ nke ọhụrụ; ọrụ a ga-aga n’ihu na-ejupụta ahịrị ochie.
- Contract: tufuo ụdị ochie, na mwepụta ọzọ, naanị ya.
Ya mere n’oge ọ bụla nke mmelite na-aga n’ihu, usoro ochie na nke ọhụrụ nwere ike ịkekọrịta otu nchekwa data. Enweghị mbugharị ala: mbugharị tufuru kọlụm otu awa gara aga enweghị ike iweghachi ahịrị e dere n’awa ahụ.
Ọrụ CI schema-compat na-enyocha nkwa ahụ na mwepụta ọ bụla site n’ịgba ule
mwepụta gara aga megide schema ọhụrụ.
Tupu ị malite
- Gụọ ndetu mwepụta. Mwepụta chọrọ windo mmezi na-ekwu ya, na ọnụ ọgụgụ; karịa otu kwa mwepụta adịghị.
- Gbaa mmega ahụ iweghachi, ma ọ bụ kwado na ọ gara nke ọma maka mwepụta a (backup-restore.md). Mmega ahụ dara na-egbochi mmelite.
- Were mbipụta ndabere mbụ:
docker compose -f docker/compose.yaml --profile backup run --rm backup.
Docker Compose, otu họst
export QUIRE_RELEASE=2026.10.0 # or set it in docker/.env
docker compose -f docker/compose.yaml pull # or build
docker compose -f docker/compose.yaml run --rm migrate
docker compose -f docker/compose.yaml up -d --no-deps web content collab
docker compose -f docker/compose.yaml up -d --no-deps worker schedulerUsoro ahụ ezubere:
- Bugharịa nke mbụ, mgbe mwepụta ochie na-enye okporo ụzọ. Mbugharị expand adịghị ahụ ya anya.
- Ọkwa weebụ na-esote. Na SIGTERM usoro weebụ ọ bụla na-atụgharị
/readyznadraining, na-emecha arịrịọ na-aga n’ime 30 sekọnd, na-emechi iyi na ntụnye ịjikọta ọzọ, wee pụọ.stop_grace_periodbụ 40 sekọnd ka Compose ghara ịbepụ mmiri dị mma. - Workers n’ikpeazụ, ka e mepụta ụdị ihe omume kachasị ọhụrụ tupu onye na-eri kachasị ọhụrụ atụ anya ya. Workers na-akwụsị iweta n’otu oge ma nweta 120 sekọnd; a na-eweta ọrụ na-enweghị ike ịgwụ ọzọ n’ebe ọzọ, nke dị nchebe n’ihi na ọrụ ọ bụla bụ idempotent. Onye nhazi oge na-enyefe iduzi na tick ya na-esote.
Na otu họst, Compose na-edochi akpa ọ bụla n’aka, ya mere enwere obere oghere kwa ọrụ. Ka oghere ghara ịdị ma ọlị, gbaa ọkwa weebụ dịka akpa abụọ n’azụ proxy nke gị (faịlụ override na-agbakwunye ọrụ weebụ nke abụọ na-enweghị ọdụ ụgbọ ebipụtara), megharịakwa ha otu n’otu oge, na-echere ka nke ọ bụla kọọ ahụike tupu nke na-esote.
Ọtụtụ họst ma ọ bụ onye nhazi
Jiri otu usoro: bugharịa otu ugboro site n’otu ọrụ, gbanweekwa ọkwa weebụ
na surge otu na unavailable efu, emesịa workers. Tụọ nyocha njikere na
/readyz na ndụ na /healthz.
Na nchekwa data tenant raara onwe ha, nzọụkwụ migrate na-eme ha abụọ: ọ
na-ebugharị nchekwa data njikwa nke mbụ, emesịa nchekwa data ọ bụla edepụtara
na ops.tenant_database, otu n’otu oge, nke ọ bụla n’okpuru mkpọchi nke ya.
Ọdịda na otu nchekwa data tenant anaghị akwụsị ndị ọzọ. Mgbe nchekwa data
ọ bụla gwụsịrị ọ na-atụnyere akwụkwọ mbugharị wee pụọ na-abụghị efu ma ọ
bụrụ na nchekwa data ọ bụla etinyeghị kpọmkwem mbugharị nchekwa data njikwa
tinyere, na-akpọ nke ọ bụla dị n’azụ ma ọ bụ n’ihu. Otu iwu ahụ na-etinye
tebụl queue na nchekwa data ọ bụla, n’ihi na worker na-eri ọrụ tenant a
tụkwasịrị ebe e dere ha.
bun apps/worker/src/migrate.ts # what the Compose step runs
bun run db:migrate:all # the same, from a checkoutA na-eru nchekwa data ọ bụla raara onwe ya site na aha edebanyere ya
n’okpuru. Nchekwa data edebanyere dịka env:QUIRE_DB_NORTHWIND_URL chọrọ:
| Mgbanwe | Eji maka |
|---|---|
QUIRE_DB_NORTHWIND_URL |
Ọrụ ngwa, maka ọkwa weebụ na worker |
QUIRE_DB_NORTHWIND_URL_MIGRATOR |
Ọrụ migrator, maka iwu a na maka mbugharị |
QUIRE_DB_NORTHWIND_URL_SUPERUSER |
Nhọrọ: na-etinye bootstrap ọzọ (roles, schemas, helpers) tupu ịbugharị |
A na-akọ nchekwa data edebanyere na-enweghị njikọ _MIGRATOR dịka ọdịda, a
naghị awụli ya. Ọkwa weebụ nwere ike ịgbanwe ozugbo nchekwa data njikwa
gwụsịrị. Nchekwa data tenant dị n’azụ otu awa na-adọ aka ná ntị; site n’otu
ụbọchị ọ na-akpọ.
pgvector
Site na mbugharị 0264 corpus grounding na-eji index pgvector HNSW ebe sava
nwere extension; ọrụ Compose postgres e ji ya wuo
(docker/postgres.Dockerfile). migrate mbụ mgbe ịgbanwechara images
na-emepụta extension site na bootstrap superuser, 0264 emesịa tinye kọlụm
vector emepụtara wee wuo index. Ịtinye kọlụm na-edegharị app.ai_chunk otu
ugboro n’okpuru mkpọchi naanị ya, ya mere arịrịọ grounding na-echere ya;
ọ dịghị ihe ọzọ na-emetụ tebụl ahụ aka.
Na sava na-enweghị pgvector, 0264 na-edekọ ọkwa ma ọ dịghị agbanwe ihe,
nwetaghachi na-anọgide kpọmkwem. Na pgvector ochie karịa 0.8 a na-ewu kọlụm
na index mana nwetaghachi na-anọgide kpọmkwem ruo mgbe e melitere extension
(alter extension vector update), n’ihi na nyocha HNSW a nyochara chọrọ
nyocha iterative nke 0.8. Iji mee ya ma e mesịrị na sava na-enweghị ya,
wụnye extension, gbaa bootstrap ọzọ (ma ọ bụ create extension vector dịka
superuser), emesịa dịka quire_migrator:
set maintenance_work_mem = '1GB'; -- the HNSW build is much faster in memory
select ops.ai_chunk_enable_vector_index();Ọ bụ idempotent ma na-alaghachi enabled ma ọ bụ unavailable. Gbaa ya na
nchekwa data tenant ọ bụla raara onwe ya.
Ịlaghachi azụ
Ịlaghachi koodu dị mgbe niile: tọọ QUIRE_RELEASE na tag gara aga na
up -d ọzọ. Nke ahụ na-arụ ọrụ n’ihi na schema dabara n’ụzọ abụọ n’ime
mwepụta.
A naghị enye ịlaghachi schema. Ihe a na-enweghị ike ịmegharị, na otu esi agbake na ya:
| Ihe na-agaghị agbanwe agbanwe | Mgbake |
|---|---|
| Mbugharị contract tufuru kọlụm | Iweghachi point-in-time tupu ntufu na nchekwa data ọhụrụ, wepụ, jikọta |
| Mgbanwe data n’ebe ya | Otu ihe ahụ, emesịa mezie ederede kemgbe |
| Webhook na ihe omume ezigara | Ihe omume nkwụghachi, ọ dịghị mgbe ihichapụ |
| Email ezigara | Mmadụ na-ede ihe na-esote |
| Agbụ hash nyocha | A naghị edegharị ya; tinye ndenye mmezi |
Ọ bụ ya mere mbugharị contract ji ebupu naanị ya: iweghachi emesịa nwere oke dị ọcha.
Inyocha mmelite
docker compose -f docker/compose.yaml ps # every service healthy
curl -fsS http://localhost:8080/readyz # ready, and what is configured
docker compose -f docker/compose.yaml logs migrate # the migrations applied