Ad contentum transilire

Promovere sine intermissione

Promove Quire apud se hospitatum sine intermissione servitii.

Ostendere textu Markdown

Regulae in docs/architecture/23-ops.md sectio 7 et docs/architecture/07-data.md sectio 4.1 sunt. Haec est procedura.

Sponsio quae id tutum facit

Editio R recte contra schematem R et schematem R minus unum currit. Quaeque mutatio schematis in expand, transitionem et contractum dividitur:

  1. Expand: columnam, tabulam aut indicem novum adde. Codex vetus id neglegit.
  2. Transition, per saltem unam editionem: codex novus utrasque formas scribit et novam legit; opus resumibile veteres ordines implet.
  3. Contract: formam veterem deice, in editione posteriore, solam.

Ita in omni tempore promotionis struentes veteres et novi processus una bases datae communicare possunt. Nullae sunt migrationes descendentes: migratio quae columnam hora ante deiecit ordines ea hora scriptos reddere non potest.

Munus CI schema-compat sponsionem in omni editione inspicit cum testa editionis prioris contra novum schematem currit.

Antequam incipias

  1. Notas editionis lege. Quae editio fenestram maintenance desiderat id dicit, cum aestimatione; saltem una per editionem.
  2. Exercitium restitutionis exequere, aut confirma id pro hac editione viride cucurrisse (backup-restore.md). Exercitium fractum promotionem prohibet.
  3. Custodiam base fac: docker compose -f docker/compose.yaml --profile backup run --rm backup.

Docker Compose, unus hospes

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

Ordo consultus est:

  1. Migrare primum, dum vetus editio trafficit servit. Migrationes expand ei invisibiles sunt.
  2. Stratum textorium deinde. In SIGTERM quisque processus web /readyz in draining vertit, petitiones in volatu intra 30 secundas absolvit, fluxus cum indice reconnectus claudit et exit. stop_grace_period 40 secundae sunt ita ut Compose numquam sanam drainage abscindat.
  3. Operarii postremo, ita ut forma eventus novissima producatur antequam novissimus consumer eam exspectet. Operarii statim desinunt petere et 120 secundas accipiunt; opus quod absolvi non potest alibi rursus petetur, quod tutum est quia quodque opus idempotens est. Dispositio ducatum in proximo suo ictu tradit.

In uno hospite Compose singulas containers vice sua mutat, ideo brevis mora per servitium est. Ut nulla mora omnino sit, stratum textorium ut duos containers sub tuo proprio proxeno curra (filetulum superpositionis quod secundum servitium web addit sine portu publicato), et eos refice unus post alterum, singulum sanum renuntiare expectans ante proximum.

Plures hospites aut orchestrator

Eundum ordinem utere: semel ex uno opere migra, deinde stratum textorium cum surge one et unavailable zero volue, tum operarios. Censores aptitudinis ad /readyz et vitae ad /healthz dirige.

Cum bases datae inquilino dedicatae, gradus migrate utrumque facit: primum bases datae imperii migrat, deinde quamque basim in ops.tenant_database enumeratam, una per tempus, quaeque sub proprio suo custode. Fragmentum in unis basibus inquilini reliquas non compescit. Cum omnes absolutae sunt liberos migrationum comparat et exit non-zero nisi quaeque bases easdem migrationes applicuit quas bases imperii, nominans quamque quae retro aut ante agatur. Eadem mandata tabulas ordinis in quaque basi instituit, quia operarius officia inquilini fixi ibi consumit ubi scripta sunt.

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

Migratio ordinaria et prima constitutio etiam canonica Anglica documenta iuridica operatoris Quire in ops.platform_policy_version installant. Installator idempotens est: sola corpora Anglica absentia et exacte corpora locum tenentia a migratione sata substituuntur. Semina in archivo reponuntur et nova versio edita inseritur; historicae acceptionis notae et corpora servantur. Quaelibet vera versio ab operatore scripta, etiam exemplum rudis, servatur et per consilium Rationum suggestus administrari debet. Documenta, versiones et consensus rationum conductoris hac transitione numquam mutantur. Haec est editio textus operatoris, non certificatio iuridica nec automatica promissorum eius impletio.

Quaebaque bases dedicata per nomen sub quo registrata est attingitur. Bades sub env:QUIRE_DB_NORTHWIND_URL registrata desiderat:

Variabilis Quo adhibeatur
QUIRE_DB_NORTHWIND_URL Rola applicationis, pro strato textorio et operario
QUIRE_DB_NORTHWIND_URL_MIGRATOR Rola migratoris, pro hoc mandato et pro translatibus
QUIRE_DB_NORTHWIND_URL_SUPERUSER Optionaliter: bootstrap (rolas, schemata, adiuvantes) iterum applicat ante migrationem

Bades registrata sine connectione _MIGRATOR ut fragmentum renuntiatur, numquam omittitur. Stratum textorium volare potest simul ac bases imperii absoluta est. Bades inquilini una hora retro agens monet; uno die alarmem facit.

pgvector

A migratione 0264 corpus fundamenti indicem pgvector HNSW utitur ubi servitor extensionem habet; servitium postgres Compose cum ea aedificatur (docker/postgres.Dockerfile). Primum migrate post mutationem imaginum extensionem per bootstrap superuseri creat, et 0264 deinde columnam vectoriam generatam addit et indicem aedificat. Columna addita app.ai_chunk semel sub custode exclusivo rescribit, ideo petitiones fundamenti id expectant; nihil aliud illam tactam tabulat.

In servitore sine pgvector, 0264 nuntium scribit nihilque mutat, et requisitio manet exacta. Cum pgvector veteri quam 0.8 columna et index aedificantur sed requisitio manet exacta donec extensio promoveatur (alter extension vector update), quia scan HNSW cum filtro 0.8 iterationes desiderat. Ut id postea in servitore sine eo actives, extensionem institue, bootstrap iterum exequere (aut create extension vector ut superusor), deinde ut quire_migrator:

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

Idempotens est et enabled aut unavailable reddit. Id in quaque basi inquilino dedicata quoque exequere.

Regredi

Regredi in codicem semper paratum est: QUIRE_RELEASE in notam priorem pone et up -d rursus. Id valet quia schematem utraque via intra editionem compatibile est.

Regredi in schematem non offertur. Quod resolvi non potest, et quomodo ex eo recuperetur:

Non reversibile Recuperatio
Migratio contractus quae columnam deiecit Restitutio in tempus ante deiectionem in bases datae novas, extrahere, coniungere
Mutatio datae in loco Idem, deinde scripturas postea conciliare
Retia textoria et eventus missa Eventus compensantes, numquam deletio
Epistulae missae Homo scriptum sequens scribit
Catena hausti custodiae Numquam rescribitur; adnotationem emendationis adiunge

Idcirco migratio contractus sola vehitur: restitutio tum terminum mundum habet.

Promotionem inspicere

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
Navigatio

Scribe ut quaeras…

↑↓ navigare↵ eligereEsc claudere