Tá na rialacha in alt 7 de docs/architecture/23-ops.md agus in alt 4.1 de docs/architecture/07-data.md. Seo an nós imeachta.
An ráthaíocht a fhágann sábháilte é
Ritheann Eisiúint R mar is ceart le scéimre R agus le scéimre R lúide a haon. Roinntear gach athrú scéimre ina leathnú, aistriú agus crapadh:
- Leathnú: cuir an colún, tábla nó innéacs nua leis. Déanann seanchód neamhaird de.
- Aistriú, ar feadh eisiúint amháin ar a laghad: scríobhann cód nua an dá chruth agus léann sé an ceann nua; líonann jab in-athnuaite na seanraitheanna siar.
- Crapadh: bain an seanchruth i leagan níos déanaí, leis féin.
Mar sin, ag gach tráth d’uasghrádú céimneach, is féidir le próisis shean agus nua bunachar sonraí amháin a roinnt. Níl aistrithe íslithe ann: ní féidir le haistriú a bhain colún uair an chloig ó shin na rónna a scríobhadh san uair sin a thabhairt ar ais.
Seiceálann jab CI schema-compat an ráthaíocht i ngach eisiúint trí thástálacha na heisiúna roimhe a rith in aghaidh na scéimre nua.
Sula dtosaíonn tú
- Léigh nótaí na heisiúna. Luaitear fuinneog chothabhála riachtanach inti, agus meastachán uirthi; ní bhíonn níos mó ná ceann amháin in aghaidh eisiúna.
- Rith cleachtadh athchóirithe, nó deimhnigh gur chríochnaigh sé go rathúil don eisiúint seo (backup-restore.md). Cuireann cleachtadh ar theip air bac ar an uasghrádú.
- Déan cúltaca bunúsach:
docker compose -f docker/compose.yaml --profile backup run --rm backup.
Docker Compose, óstach amháin
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 schedulerTá an t-ord d’aon ghnó:
- Déan an t-aistriú ar dtús, agus an sean-eisiúint ag freastal ar thrácht. Ní fheiceann sí aistrithe leathnaithe.
- An tsraith ghréasáin ina diaidh. Ar SIGTERM, athraíonn gach próiseas gréasáin
/readyzgodraining, críochnaíonn sé iarratais atá ar siúl laistigh de 30 soicind, dúnann sé sruthanna le leid athcheangail, agus scoireann sé. Is é 40 soicindstop_grace_period, ionas nach ngearrann Compose draein shláintiúil riamh. - Na próiseálaithe ar deireadh, ionas go gcruthófar cruth an imeachta is nua sula mbíonn an tomhaltóir is nua ag súil leis. Stopann próiseálaithe d’iarratais nua láithreach agus tugtar 120 soicind dóibh; faightear jab nach féidir leis críochnú arís in áit eile, rud atá sábháilte mar tá gach jab saor ó dhúbailt. Tugann an sceidealóir an cheannaireacht ar aghaidh ar an gcéad tic eile.
Ar óstach amháin, ionadaíonn Compose gach coimeádán ar a sheal, mar sin bíonn bearna ghairid in aghaidh na seirbhíse. Chun gan aon bhearna a bheith ann, rith dhá choimeádán den tsraith ghréasáin taobh thiar de do sheachfhreastalaí féin (comhad sáraíochta a chuireann an dara seirbhís web leis gan calafort foilsithe), agus athchruthaigh ceann ar cheann iad; fan go dtuairisceoidh gach ceann sláinte sula dtéann tú ar aghaidh go dtí an chéad cheann eile.
Ilóstach nó ceolfhoirneoir
Úsáid an t-ord céanna: aistrigh uair amháin ó jab amháin, rollaigh an tsraith ghréasáin le borradh amháin agus gan aon cheann ar fáil, ansin na próiseálaithe. Dírigh tóireadóirí ullmhachta ar /readyz agus tóireadóirí beogachta ar /healthz.
Le bunachair shonraí tionónta tiomnaithe, déanann céim migrate an dá rud: aistríonn sí an bunachar rialaithe ar dtús, ansin gach bunachar atá liostaithe in ops.tenant_database, ceann ar cheann faoina ghlas féin. Ní chuireann teip i mbunachar tionónta amháin stop leis na cinn eile. Nuair a chríochnaítear iad ar fad, déanann sí comparáid idir mórleabhair na n-aistrithe agus filleann sí cód neamh-nialasach mura bhfuil na haistrithe céanna go díreach curtha i bhfeidhm i ngach bunachar agus atá sa bhunachar rialaithe; ainmníonn sí gach ceann atá chun deiridh nó chun cinn. Suiteálann an t-ordú céanna táblaí na scuaine i ngach bunachar freisin, mar ídíonn an próiseálaí jabanna tionónta phionnáilte sa bhunachar inar scríobhadh iad.
bun apps/worker/src/migrate.ts # what the Compose step runs
bun run db:migrate:all # the same, from a checkoutSroichtear gach bunachar tiomnaithe faoin ainm faoina bhfuil sé cláraithe. Teastaíonn na rudaí seo a leanas ó bhunachar atá cláraithe mar env:QUIRE_DB_NORTHWIND_URL:
| Athróg | Úsáid |
|---|---|
QUIRE_DB_NORTHWIND_URL |
Ról an fheidhmchláir, don tsraith ghréasáin agus don phróiseálaí |
QUIRE_DB_NORTHWIND_URL_MIGRATOR |
Ról an aistritheora, don ordú seo agus d’aistrithe |
QUIRE_DB_NORTHWIND_URL_SUPERUSER |
Roghnach: athchuireann an tionscnamh róil, scéimrí agus cúntóirí i bhfeidhm roimh an aistriú |
Tuairiscítear gur teip é bunachar cláraithe gan ceangal _MIGRATOR; ní scipeáiltear é riamh. Is féidir an tsraith ghréasáin a rolladh nuair a bheidh an bunachar rialaithe críochnaithe. Tugtar rabhadh má bhíonn bunachar tionónta uair an chloig ar gcúl; tar éis lae seoltar fógra práinneach.
pgvector
Ó aistriú 0264 ar aghaidh, úsáideann corpas bunúsaithe innéacs HNSW pgvector nuair atá an breiseán ag an bhfreastalaí; tógtar seirbhís Compose postgres leis (docker/postgres.Dockerfile). Cruthaíonn an chéad migrate tar éis íomhánna a athrú an breiseán tríd an tionscnamh sárúsáideora, agus cuireann 0264 colún veicteora ginte leis agus tógann sé an t-innéacs. Athscríobhann cur leis an gcolún app.ai_chunk uair amháin faoi ghlas eisiach, mar sin fanann iarratais bhunúsaithe go dtí go mbeidh sé déanta; ní dhéanann aon rud eile difear don tábla sin.
Ar fhreastalaí gan pgvector, logálann 0264 fógra agus ní athraíonn sé tada; fanann aisghabháil beacht. Le pgvector níos sine ná 0.8, tógtar an colún agus an t-innéacs ach fanann aisghabháil beacht go dtí go n-uasghrádaítear an breiseán (alter extension vector update), mar go dteastaíonn scananna atriallacha le haghaidh scananna scagtha HNSW agus níor tháinig siad go dtí 0.8. Chun é a chumasú níos déanaí ar fhreastalaí gan é, suiteáil an breiseán, rith an tionscnamh arís (nó create extension vector mar shárúsáideoir), agus ansin mar quire_migrator:
set maintenance_work_mem = '1GB'; -- the HNSW build is much faster in memory
select ops.ai_chunk_enable_vector_index();Tá sé saor ó dhúbailt agus filleann sé enabled nó unavailable. Rith ar gach bunachar tionónta tiomnaithe freisin.
Fill ar ais
Bíonn filleadh ar chód ar fáil i gcónaí: socraigh QUIRE_RELEASE ar an gclib roimhe agus rith up -d arís. Oibríonn sé sin mar go bhfuil an scéimre comhoiriúnach sa dá threo laistigh d’eisiúint.
Ní chuirtear filleadh ar scéimre ar fáil. Seo rudaí nach féidir a chealú, agus conas teacht chucu féin:
| Rud nach féidir a chealú | Aisghabháil |
|---|---|
| Aistriú craptha a bhain colún | Athchóirigh go tráthphointe roimh an mbaint i mbunachar nua, bain amach na sonraí agus cumaisc iad |
| Athrú sonraí in áit | Mar an gcéanna, ansin réitigh scríbhinní ón am ina dhiaidh |
| Webhooks agus imeachtaí seolta | Imeachtaí cúitimh, ná scrios iad choíche |
| Ríomhphost seolta | Scríobhann duine an teachtaireacht leantach |
| Slabhra hais iniúchta | Ní athscríobhtar riamh é; cuirtear iontráil cheartúcháin leis |
Sin an fáth a seoltar aistriú craptha leis féin: cruthaíonn athchóiriú teorainn ghlan ansin.
Seiceáil an t-uasghrádú
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