Lele i ka ʻike

Hōʻano hou me ka hoʻomaha ʻole

Hōʻano hou i Quire mālama ponoʻī me ka hoʻomaha ʻole.

Nānā ma ke ʻano Markdown

Aia nā lula ma ka māhele 7 o docs/architecture/23-ops.md a me ka māhele 4.1 o docs/architecture/07-data.md. Eia ke kaʻina hana.

Ka hōʻoia e palekana ai

Holo pololei ka mana R ma ke kūkulu ʻikepili R a me R emi hoʻokahi. Māhele ʻia kēlā me kēia hoʻololi kūkulu ʻikepili i ka hoʻonui, hoʻololi, a me ka pani ʻana:

  1. Hoʻonui: hoʻohui i kolamu, papaʻaina, a i ʻole helu kuhikuhi hou. Nānā ʻole ke code kahiko iā ia.
  2. Hoʻololi, no hoʻokahi mana a ʻoi: kākau ke code hou i nā ʻano ʻelua a heluhelu i ke ʻano hou; hoʻopiha kahi hana hiki ke hoʻomau i nā lālani kahiko.
  3. Pani: wehe i ke ʻano kahiko ma kahi mana ma hope, ʻo ia wale nō.

No laila hiki i nā kaʻina hana kahiko a hou ke kaʻana i hoʻokahi waihona ʻikepili i kēlā me kēia manawa o kahi hōʻano hou holo mālie. ʻAʻohe neʻe ʻikepili i lalo: ʻaʻole hiki i kahi neʻe i holoi kolamu i hoʻokahi hola i hala ke hoʻihoʻi i nā lālani i kākau ʻia i ia hola.

Nānā ka hana CI schema-compat i ka hōʻoia i kēlā me kēia mana ma ka holo ʻana i nā hoʻāʻo o ka mana ma mua ma luna o ke kūkulu ʻikepili hou.

Ma mua o kou hoʻomaka ʻana

  1. E heluhelu i nā memo hoʻokuʻu. Hōʻike ka hoʻokuʻu e pono ai i manawa mālama, me ka manaʻo lōʻihi; hoʻokahi wale nō ma kēlā me kēia mana.
  2. Holo i ka hoʻāʻo hoʻihoʻi, a i ʻole hōʻoia ua hala ia no kēia hoʻokuʻu (backup-restore.md). Kāohi ka hoʻāʻo hāʻule i ka hōʻano hou.
  3. E hana i kope papaʻa kumu: docker compose -f docker/compose.yaml --profile backup run --rm backup.

Docker Compose ma hoʻokahi host

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 scheduler

He manaʻo ko ke kaʻina:

  1. Neʻe ʻikepili mua, i ka wā e lawelawe ana ka mana kahiko i ka hoʻoili. ʻAʻole ʻike ʻia nā neʻe hoʻonui iā ia.
  2. A laila ka papa pūnaewele. Ma SIGTERM, hoʻololi kēlā me kēia kaʻina pūnaewele iā /readyz i draining, hoʻopau i nā noi e holo ana i loko o 30 kekona, pani i nā kahawai me ka hōʻailona hoʻohui hou, a puka. He 40 kekona ʻo stop_grace_period i ʻoki ʻole ai ʻo Compose i ka hoʻopau olakino.
  3. ʻO nā worker ka hope, i hana ʻia ai ke ʻano hanana hou ma mua o ka manaʻo ʻia e ka mea ʻaiʻē hou. Hoʻōki koke nā worker i ka loaʻa ʻana o nā hana a loaʻa iā lākou 120 kekona; loaʻa hou ʻia kekahi hana ʻaʻole hiki ke hoʻopau ʻia ma kahi ʻē aʻe, palekana kēia no ka hana hoʻokahi-wale nō o kēlā me kēia hana. Hoʻolilo ka scheduler i ke alakaʻi ma kona māka manawa aʻe.

Ma hoʻokahi host, pani ʻo Compose i kēlā me kēia ipu ma kona kaʻina, no laila he wā pōkole ke kaʻawale no kēlā me kēia lawelawe. No ka nele loa o kahi wā kaʻawale, holo i ʻelua ipu papa pūnaewele ma hope o kou proxy ponoʻī (faila pani e hoʻohui ana i lawelawe web lua me ka ʻole o ke awa hoʻolaha), a hana hou iā lākou hoʻokahi i ka manawa, e kali ana i ka hōʻike olakino o kēlā me kēia ma mua o ka neʻe ʻana aku.

Nā host he nui a i ʻole orchestrator

E hoʻohana i ke kaʻina like: neʻe ʻikepili hoʻokahi manawa mai kekahi hana hoʻokahi, a laila hoʻohou mālie i ka papa pūnaewele me hoʻokahi mea hoʻonui a ʻaʻohe mea hiki ʻole, a laila nā worker. Kuhikuhi i nā hoʻāʻo mākaukau iā /readyz a me nā hoʻāʻo ola iā /healthz.

Me nā waihona ʻikepili tenant hoʻolaʻa, hana nā mea ʻelua i ka ʻanuʻu migrate: neʻe mua i ka waihona ʻikepili hoʻomalu, a laila kēlā me kēia waihona i helu ʻia ma ops.tenant_database, hoʻokahi i kēlā manawa ma lalo o kona laka ponoʻī. ʻAʻole hoʻōki ka hewa ma kekahi waihona tenant i nā mea ʻē aʻe. Ma hope o nā waihona a pau, hoʻohālikelike ka hana i nā puke neʻe a puka me ka helu hewa ke ʻokoʻa nā neʻe i hoʻohana ʻia e kekahi waihona mai nā mea o ka waihona hoʻomalu; inoa ʻia kēlā me kēia mea ma hope a ma mua paha. Hoʻouka pū ke kauoha hoʻokahi i nā papa queue ma kēlā me kēia waihona, no ka mea hoʻohana ka worker i nā hana tenant i hoʻopaʻa ʻia ma kahi i kākau ʻia ai.

bun apps/worker/src/migrate.ts   # what the Compose step runs
bun run db:migrate:all                            # the same, from a checkout

Loaʻa kēlā me kēia waihona hoʻolaʻa ma ka inoa i hoʻopaʻa ʻia ai. Pono kahi waihona i hoʻopaʻa ʻia ma ke ʻano env:QUIRE_DB_NORTHWIND_URL i kēia mau mea:

Loli Hoʻohana ʻia no
QUIRE_DB_NORTHWIND_URL Kuleana polokalamu, no ka papa pūnaewele a me ka worker
QUIRE_DB_NORTHWIND_URL_MIGRATOR Kuleana neʻe, no kēia kauoha a no nā hoʻololi wahi
QUIRE_DB_NORTHWIND_URL_SUPERUSER Koho: hoʻopili hou i ka hoʻomaka mua (nā kuleana, nā papa hana, nā kōkua) ma mua o ka neʻe ʻana

Hōʻike ʻia kahi waihona i hoʻopaʻa ʻia me ka pilina _MIGRATOR ʻole ma ke ʻano he hewa; ʻaʻole loa e kāpae wale ʻia. Hiki ke hoʻohou mālie i ka papa pūnaewele ma hope o ka pau ʻana o ka waihona hoʻomalu. Hoʻomaopopo ka waihona tenant i lohi i hoʻokahi hola; hoʻouna ʻaoʻao ka lohi lā hoʻokahi.

pgvector

Mai ka neʻe 0264 aku, hoʻohana ka ʻike kumu i helu kuhikuhi pgvector HNSW inā loaʻa ka hoʻonui ma ke kikowaena; kūkulu ʻia ka lawelawe Compose postgres me ia (docker/postgres.Dockerfile). Hana ka migrate mua ma hope o ka hoʻololi kiʻi i ka hoʻonui ma o ka hoʻomaka superuser; hoʻohui ʻo 0264 i kolamu vector i hana ʻia a kūkulu i ka helu kuhikuhi. Kākau hou ka hoʻohui kolamu i app.ai_chunk hoʻokahi manawa ma lalo o laka kūʻokoʻa, no laila kali nā noi kumu; ʻaʻole hoʻopā kekahi mea ʻē aʻe i kēlā papaʻaina.

Ma kahi kikowaena ʻaʻohe pgvector, hoʻopaʻa ʻo 0264 i leka hoʻomaopopo a ʻaʻohe mea e hoʻololi; pololei mau ka huli. Me pgvector ma mua o 0.8, kūkulu ʻia ke kolamu a me ka helu kuhikuhi akā pololei mau ka huli a hōʻano hou ʻia ka hoʻonui (alter extension vector update), no ka mea, pono ka huli kānana HNSW i nā huli kaʻina o 0.8. No ka hoʻā ʻana ma hope ma kahi kikowaena nele iā ia, hoʻouka i ka hoʻonui, holo hou i ka hoʻomaka (a i ʻole create extension vector ma ke ʻano he superuser), a laila ma ke ʻano he quire_migrator:

set maintenance_work_mem = '1GB';  -- the HNSW build is much faster in memory
select ops.ai_chunk_enable_vector_index();

Hana hoʻokahi wale nō ia a hoʻihoʻi iā enabled a i ʻole unavailable. E holo pū iā ia ma kēlā me kēia waihona tenant hoʻolaʻa.

Hoʻihoʻi i ka mana ma mua

Loaʻa mau ka hoʻihoʻi code: hoʻonoho iā QUIRE_RELEASE i ka tag ma mua, a holo hou iā up -d. Hana kēia no ka mea kūpono ke kūkulu ʻikepili ma nā ʻaoʻao ʻelua i loko o hoʻokahi mana.

ʻAʻole hāʻawi ʻia ka hoʻihoʻi kūkulu ʻikepili. ʻO nā mea hiki ʻole ke wehe a me ke ʻano hoʻihoʻi:

ʻAʻole hiki ke hoʻihoʻi Hoʻihoʻi
Neʻe pani i holoi kolamu Hoʻihoʻi manawa kikoʻī ma mua o ka holoi ʻana i waihona ʻikepili hou; unuhi a hoʻohui
Hoʻololi ʻikepili ma kahi Hana like, a laila hoʻoponopono i nā kākau ma hope
Nā webhook a me nā hanana i hoʻouna ʻia Nā hanana uku pānaʻi, ʻaʻole loa ka holoi ʻana
Leka uila i hoʻouna ʻia Kākau kekahi kanaka i ka memo ukali
Kaulahao hash hōʻoia ʻAʻole loa e kākau hou; hoʻohui i komo hoʻoponopono

ʻO ia ke kumu e hoʻokuʻu hoʻokahi ʻia ai ka neʻe pani: loaʻa i ka hoʻihoʻi kahi palena maʻemaʻe.

Nānā i ka hōʻano hou

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
Hoʻokele

E kikokiko e ʻimi…

↑↓ hoʻokele↵ kohoEsc pani