---
title: "Aġġornament mingħajr downtime"
description: "Aġġorna Quire self-hosted mingħajr downtime."
image: "https://docs.quirelms.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.quirelms.com/mt/llms.txt
> Use this file to discover all available pages before exploring further.

# Aġġornament mingħajr downtime

<span id="upgrading-without-downtime"></span>

Ir-regoli jinsabu f'`docs/architecture/23-ops.md` sezzjoni 7 u
`docs/architecture/07-data.md` sezzjoni 4.1. Din hija l-proċedura.

## Il-garanzija li tagħmilha sigura <!--quire:the-guarantee-that-makes-it-safe-->

**Release R taħdem korrettement kontra schema R u schema R nieqes waħda.** Kull
bidla tal-iskema tinqasam fi expand, transition u contract:

1. **Expand**: żid il-kolonna, it-tabella jew l-indiċi l-ġdid. Il-kodiċi l-qadim jinjoraha.
2. **Transition**, għal mill-inqas release waħda: il-kodiċi l-ġdid jikteb iż-żewġ forom u
   jaqra l-ġdida; xogħol li jista' jitkompla jimla r-ringieli qodma.
3. **Contract**: armi l-forma l-qadima, f'release aktar tard, waħedha.

Għalhekk f'kull mument ta' aġġornament rolling, proċessi qodma u ġodda jistgħu jaqsmu database
waħda. M'hemm l-ebda migrazzjoni 'l isfel: migrazzjoni li armat kolonna siegħa
ilu ma tistax trodd lura r-ringieli miktuba f'dik is-siegħa.

Ix-xogħol CI `schema-compat` jiċċekkja l-garanzija f'kull release billi jħaddem
it-testijiet tar-release ta' qabel kontra l-iskema l-ġdida.

## Qabel ma tibda <!--quire:before-you-start-->

1. Aqra n-noti tar-release. Release li teħtieġ tieqa ta' manutenzjoni tgħid hekk,
   bl-istima; l-aktar waħda għal kull release.
2. Ħaddem id-drill tar-restore, jew ikkonferma li ħadem aħdar għal din ir-release
   ([backup-restore.md](/mt/ops/backup-restore/)). Drill fallut jimblokka l-
   aġġornament.
3. Ħu backup bażi: `docker compose -f docker/compose.yaml --profile backup
   run --rm backup`.

## Docker Compose, host wieħed <!--quire:docker-compose-one-host-->

```sh
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
```

L-ordni hija deliberata:

1. **Emigra l-ewwel**, waqt li r-release l-qadima sservi t-traffiku. Migrazzjonijiet Expand
   huma inviżibbli għaliha.
2. **Il-livell web wara.** Fuq SIGTERM kull proċess web idawwar `/readyz` għal
   `draining`, ilesti talbiet in-flight fi żmien 30 sekonda, jagħlaq streams
   b'ħjiel ta' konnessjoni mill-ġdid, u joħroġ. `stop_grace_period` huwa 40 sekonda biex
   Compose qatt ma jaqta' drain b'saħħtu.
3. **Workers l-aħħar**, biex il-forma tal-avveniment l-aktar ġdida tiġi prodotta qabel ma l-aktar ġdid
   konsumatur jistenniha. Workers jieqfu jġibu f'daqqa u jieħdu 120 sekonda;
   xogħol li ma jistax jispiċċa jerġa' jinġieb x'imkien ieħor, li huwa sigur għax
   kull xogħol huwa idempotenti. L-iskedar jgħaddi t-tmexxija fid-dawra li jmiss
   tiegħu.

Fuq host wieħed, Compose jissostitwixxi kull container min-naħa tiegħu, għalhekk hemm vojt qasir
għal kull servizz. Għal ebda vojt xejn, ħaddem il-livell web bħala żewġ containers wara
il-proxy tiegħek (fajl override li jżid it-tieni servizz web mingħajr
port ippubblikat), u oħloqhom mill-ġdid wieħed kull darba, tistenna lil kull wieħed jirrapporta
b'saħħtu qabel li jmiss.

## Diversi hosts jew orkestratur <!--quire:several-hosts-or-an-orchestrator-->

Uża l-istess ordni: emigra darba minn xogħol wieħed, imbagħad dawwar il-livell web
b'surge wieħed u mhux disponibbli żero, imbagħad il-workers. Indika sondi ta' readiness
lejn `/readyz` u liveness lejn `/healthz`.

B'databases dedikati tat-tenant, il-pass `migrate` jagħmel it-tnejn: jemigra
id-database tal-kontroll l-ewwel, imbagħad kull database elenkata f'
`ops.tenant_database`, waħda kull darba, kull waħda taħt il-lock tagħha. Falliment f'
database waħda tat-tenant ma jwaqqafx lill-oħrajn. Meta kull database titlesta dan
iqabbel il-ledgers tal-migrazzjoni u joħroġ non-zero sakemm kull database tkun
applikat eżatt il-migrazzjonijiet li d-database tal-kontroll għandha, billi jsemmi kull waħda li hija
wara jew quddiem. L-istess kmand jinstalla t-tabelli tal-queue f'kull
database, għax il-worker jikkonsma x-xogħol ta' tenant imwaħħal fejn kienu
miktuba.

```sh
bun apps/worker/src/migrate.ts   # what the Compose step runs
bun run db:migrate:all                            # the same, from a checkout
```
Il-migrazzjoni normali u s-setup tal-ewwel ġirja jinstallaw ukoll id-dokumenti legali Ingliżi kanoniċi tal-operatur Quire f'`ops.platform_policy_version`. L-installatur huwa idempotenti: il-korpi Ingliżi neqsin biss u preċiż il-korpi placeholder maħluqa mill-migrazzjoni jiġu sostitwiti. Iż-żrieragħ jiġu arkivjati u tiżdied verżjoni ppubblikata ġdida; ir-referenzi storiċi ta' aċċettazzjoni u l-korpi jinżammu. Kwalunkwe verżjoni ġenwina miktuba mill-operatur, inkluż abbozz, tinżamm u trid tiġi mmaniġġjata permezz tal-console tal-Policies tal-pjattaforma. Id-dokumenti, il-verżjonijiet u l-kunsens tal-politiki tal-kerrej qatt ma jinbidlu b'din it-transizzjoni. Din hija pubblikazzjoni tat-test tal-operatur, mhux ċertifikazzjoni legali u lanqas twettiq awtomatiku tal-wegħdiet tiegħu.


Kull database dedikata tintlaħaq permezz tal-isem li hija rreġistrata taħtu.
Database rreġistrata bħala `env:QUIRE_DB_NORTHWIND_URL` teħtieġ:

| Variable | Used for |
| --- | --- |
| `QUIRE_DB_NORTHWIND_URL` | Ir-rwol tal-applikazzjoni, għal-livell web u l-worker |
| `QUIRE_DB_NORTHWIND_URL_MIGRATOR` | Ir-rwol tal-migratur, għal dan il-kmand u għal ċaqliq |
| `QUIRE_DB_NORTHWIND_URL_SUPERUSER` | Fakultattiv: jerġa' japplika l-bootstrap (rwoli, skemi, helpers) qabel ma jemigra |

Database rreġistrata bla konnessjoni `_MIGRATOR` tiġi rrapportata bħala falliment,
qatt skippjata. Il-livell web jista' ddawwar ladarba d-database tal-kontroll titlesta. Database
tat-tenant lura b'siegħa twissi; b'ġurnata tpeġġja.

## pgvector <!--quire:pgvector-->

Mill-migrazzjoni 0264 il-corpus tal-grounding juża indiċi pgvector HNSW fejn
is-server għandu l-estensjoni; is-servizz `postgres` ta' Compose huwa mibni biha
(`docker/postgres.Dockerfile`). L-ewwel `migrate` wara li tbiddel
l-immaġnijiet toħloq l-estensjoni permezz tal-bootstrap tas-superuser, u 0264 imbagħad
iżid kolonna vettorjali ġġenerata u tibni l-indiċi. Iż-żieda tal-kolonna
terġa' tikteb `app.ai_chunk` darba taħt lock esklussiva, biex talbiet ta' grounding
jistennewha; xejn ieħor ma jmiss dik it-tabella.

Fuq server mingħajr pgvector, 0264 jilloggja avviż u ma jbiddel xejn, u
l-irkupru jibqa' eżatt. B'pgvector anzjan minn 0.8 il-kolonna u l-indiċi
jinbnew iżda l-irkupru jibqa' eżatt sakemm l-estensjoni tiġi aġġornata
(`alter extension vector update`), għax scans HNSW iffiltrati jeħtieġu scans
iterattivi ta' 0.8. Biex tattivaha aktar tard fuq server mingħajrha, installa l-
estensjoni, ħaddem il-bootstrap mill-ġdid (jew `create extension vector` bħala
superuser), imbagħad bħala `quire_migrator`:

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

Hija idempotenti u tirritorna `enabled` jew `unavailable`. Ħaddimha fuq kull
database dedikata tat-tenant ukoll.

## Treġġigħ lura <!--quire:rolling-back-->

It-treġġigħ lura tal-**kodiċi** huwa dejjem disponibbli: issettja `QUIRE_RELEASE` għat-
tag ta' qabel u `up -d` mill-ġdid. Dan jaħdem għax l-iskema hija kompatibbli
fiż-żewġ direzzjonijiet f'release.

It-treġġigħ lura tal-**iskema** mhuwiex offrut. Dak li ma jistax jitneħħa, u kif
tirkupra minnu:

| Not reversible | Recovery |
| --- | --- |
| Migrazzjoni contract li armat kolonna | Restore puntwal għal qabel it-tneħħija f'database ġdida, estrai, waħħad |
| Bidla tad-data fil-post | L-istess, imbagħad irrikonċilja kitbiet minn dakinhar |
| Webhooks u avvenimenti mibgħuta | Avvenimenti kumpensatorji, qatt tħassir |
| Email mibgħuta | Bniedem jikteb is-segwitu |
| Il-katina hash tal-verifika | Qatt miktuba mill-ġdid; żid entrata ta' korrezzjoni |

Għalhekk migrazzjoni contract tibgħat waħedha: restore imbagħad ikollu konfini
nadif.

## Kontroll tal-aġġornament <!--quire:checking-the-upgrade-->

```sh
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
```

Source: https://docs.quirelms.com/mt/ops/upgrade/index.mdx
