Mandehana any amin'ny votoaty fototra

Fanavaozana tsy misy fijanonana

Manavao Quire fandraisina an-tsokajy tsy misy fijanonana.

Ny fehezanteny dia ao amin’ny docs/architecture/23-ops.md singa 7 ary docs/architecture/07-data.md singa 4.1. Izao no fomba fiasa.

Ny fanapatoana mahatonga azy ho azo antoka

Miasa tsara amin’ny schema R sy schema R maina iray ny fandefasana R. Sarain’ny fampitomboana, fandaloana ary fanaprahana isaky ny fanovana schema:

  1. Fampitomboana: manampy gerbozy, takelaka na index vaovao. Tsy manadino azy ny kaody taloha.
  2. Fandaloana, amin’ny farany fandefasana iray: manoratra endrika roa ny kaody vaovao ary mamaky ny vaovao; asa azo atomboyina dia manampy toerana taloha.
  3. Fanaprahana: esorina ny endrika taloha, ao amin’ny fandefasana manaraka, iray ihany.

Ka amin’ny fotoana rehetra an’ny fanavaozana mihetsika, afaka mizara data-by iray ny endrika taloha sy vaovao. Tsy misy fiovana miverina: ny fiovana nesorana gerbozy iray ora lasa dia tsy afaka mamerina ny toerana nosoratra tamin’io ora io.

Mijery ny fanapatoana isaky ny fandefasana ny asan’ny CI schema-compat amin’ny alàlan’ny fandraisana ny fanadinana an’ny fandefasana taloha amin’ny schema vaovao.

Alohan’ny hanombohana

  1. Mamaky ny toro-hevitry ny fandefasana. Ny fandefasana mila fotoan-panapahana dia milaza izany, misy ny fetra; iray ihany farany fandefasana.
  2. Alefa ny fandinihan’ny famerenana, na manamarina fa nandeha tsara amin’io fandefasana io izy (backup-restore.md). Ny fandinihana diso dia manakana ny fanavaozana.
  3. Manao backup fototra: docker compose -f docker/compose.yaml --profile backup run --rm backup.

Docker Compose, mpandray anjara iray

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

Lalina ny filaharana:

  1. Fiovana voalohany, rehefa miasa ny fandefasana taloha. Tsy hita aminy ny fiovana fampitomboana.
  2. Ny sehatra ve-dalana avy eo. Amin’ny SIGTERM dia manova /readyz ho draining ny asa ve-dalana tsirairay, manavao ny fangatahana misokatra ao anatin’ny 30 sekondra, manokatra ny rindrina amin’ny toro-hevitra fijeron-kosoka, ary mivoaka. 40 sekondra ny stop_grace_period ka tsy hanapaka Compose ny fijanonana toa miasa tsara.
  3. Ny mpandray asa farany, ka hanao ny endrika vaovao ny zava-mitranga voalohany alohan’ny fijeren’ny mpangataka vaovao azy. Miha-jiny haingana ny mpandray asa ary mahaka 120 sekondra; ny asa tsy afaka vita dia atehirizina hafa, izay tsy manimba satria tsirairay ny asa. Alefan’ny mpandrinjaka ny fahefany amin’ny fijerena manaraka.

Amin’ny mpandray anjara iray, dia manolo container tsirairay arakaty ny Compose, ka misy fijanonana fohy isaky ny serivisy. Tsy misy fijreonana tanteraka, alefa ny sehatra ve-dalana ho container roa eo aorian’ny proxy manokanao (rafitra manampy serivisy ve-dalana faharoa tsy misy akanjo), ary amoronao iray iray, miandry ny fahasalamana tsirairay alohan’ny anaraka.

Mpandray anjara maro na mpitondra tetikasa

Ampiasao ny filaharana mitovy: fiovana iray avy amin’ny asa iray, avy eo alefa ny sehatra ve-dalana amin’ny maxSurge iray sy maxUnavailable zero, avy eo ny mpandray asa. Orientaho amin’/readyz ny fijerena fahazotoana ary amin’/healthz ny fijerena fahombiazana.

Amin’ny data-by mpanjifa manokana, ny dingana migrate dia manao roa: fiovana ny data-by fifehezana voalohany, avy eo data-by rehetra voasoratra ao amin’ny ops.tenant_database, iray iray, isaky ny iray amin’ny veriny manokana. Ny diso ao amin’ny data-by mpanjifa iray tsy manakana ny sisa. Rehefa vita ny data-by rehetra, dia mampitaho ny taki-dalana fiovana ary mivoaka amin’ny kaody tsy 0 raha tsy ampy ny fiovana natao amin’ny data-by rehetra toy ny amin’ny data-by fifehezana, manambara ny tsy mbola na eo ambony. Ny fehezanteny mitovy no mametraka ny takelakin’ny filaharana ao amin’ny data-by tsirairay, satria ny mpandray asa dia miasa amin’ny asan’ny mpanjifa voafaritra eo amin’ny toerana nosoratany.

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

Ny fifindra-monina mahazatra sy ny fanamboarana voalohany dia mametraka ihany koa ny antontan-taratasy ara-dalàna anglisy kanônikan’ny mpandraharaha Quire ao amin’ny ops.platform_policy_version. Ny fametrahana dia idempotent: ny lahatsoratra anglisy tsy hita sy marina ireo lahatsoratra vonjimaika noforonin’ny fifindra-monina ihany no soloina. Voatahiry ny voa ary ampidirina ny dika navoaka vaovao; voatahiry ny fanondroana fanekena ara-tantara sy ny lahatsoratra. Ny dika marina rehetra nosoratan’ny mpandraharaha, anisan’izany ny volavola, dia voatahiry ary tsy maintsy tantanana amin’ny alalan’ny console Politika eo amin’ny lampihazo. Ny antontan-taratasy, ny dika ary ny fanekena amin’ny politikan’ny mpanofa dia tsy ovaina mihitsy amin’ity fifindrana ity. Ity dia famoahana lahatsoratry ny mpandraharaha, fa tsy fanamarinana ara-dalàna na fanatanterahana ho azy ny fampanantenany.

Hitahin’ny anarana nosoratany ny data-by manokana tsirairay. Data-by nosoratra hoe env:QUIRE_DB_NORTHWIND_URL mila:

Variable Amprasaina amin’ny
QUIRE_DB_NORTHWIND_URL Ny andraikin’ny fampiharana, ho an’ny sehatra ve-dalana sy ny mpandray asa
QUIRE_DB_NORTHWIND_URL_MIGRATOR Ny andraikin’ny mpanova, ho an’ny fehezanteny io sy ho an’ny fandehanana
QUIRE_DB_NORTHWIND_URL_SUPERUSER Azo safidina: mamerina ny fototra (andraikitra, schema, solosaina) alohan’ny fiovana

Tsy alefa mihitsy fa tetibola no atao amin’ny data-by voasoratra tsy misy fifandraisana _MIGRATOR. Afaka alefa ny sehatra ve-dalana rehefa vita ny data-by fifehezana. Mampandrenesa raha mivoaka hora iray ny data-by mpanjifa; raha andro iray, dia mamela fampandrenesana loza.

pgvector

Avy amin’ny fiovana 0264 dia mampiasa index HNSW pgvector ny loharanon’ny fampianarana raha manana io extension io ny serivera; voamorona aminy ny serivisy postgres an’ny Compose (docker/postgres.Dockerfile). Mamorona ny extension amin’ny alàlan’ny fototran’ny superuser ny migrate voalohany aorian’ny fanovana sary, ary avy eo manampy gerbozy veketa naorina ny 0264 ary manamboatra ny index. Ny fanampiana gerbozy dia manoratra indray app.ai_chunk amin’ny fotoana iray amin’ny adiny voafaritra, ka miandry izany ny fangatahana fampianarana; tsy misy hafa mamintina io takelaka io.

Ao amin’ny serivera tsy misy pgvector, dia manoratra fanamarihana ny 0264 ary tsy manova na inona na inona, ary marina mihitsy ny fikarohana. Amin’ny pgvector taloha kokoa no 0.8 dia amoronina ny gerbozy sy index fa marina mihitsy ny fikarohana mandraaka fanavaozana ny extension (alter extension vector update), satria mila ny fijerena mihintsana an’ny 0.8 ny fanadihadiana HNSW misy sivana. Hanalefa azy eo amin’ny serivera tsy misy azy avy eo, apetraho ny extension, alefa indray ny fototra (na create extension vector amin’ny alàlan’ny superuser), avy eo amin’ny alàlan’ny quire_migrator:

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

Idempotenty izy ary manome enabled na unavailable. Alefa azy koa amin’ny data-by mpanjifa manokana tsirairay.

Famerenana

Azony ampiasaina foana ny famerenana kaody: metrahana QUIRE_RELEASE amin’ny tag taloha ary alefa up -d indray. Miasa izany satria mifanaraka ny schema eo amin’ny felana roa ao anatin’ny fandefasana iray.

Tsy omena ny famerenana schema. Ny tsy azo afoana, ary ny fomba hanadihahana azy:

Tsy azo averina Fanadihahana
Ny fiovana fanaprahana nesorana gerbozy Famerenana amin’ny fotoana voafaritra alohan’ny fanesana mankany amin’ny data-by vaovao, avaka, apetraho
Ny fanovana data eo an-toerana Ny mitovy, avy eo ampiasao ny fanoratana natao avy eo
Webhook sy zava-mitranga nandeha Zava-mitranga mamerina, tsy fanalana mihitsy
Mailaka nandeha Olona iray no manoratra ny takiana
Ny rindrin’ny hash an’ny fitsarana Tsy manoratra indray mihitsy; ampiorino singa fanitsakitsahana

Io no antony alefan’ny fiovana fanaprahana iray ihany: misy fetra madio ny famerenana avy eo.

Fanekena ny fanavaozana

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
Fifandehanana

Soraty hanadihana…

↑↓ mandeha↵ safidioEsc akano