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:
- Expand: columnam, tabulam aut indicem novum adde. Codex vetus id neglegit.
- Transition, per saltem unam editionem: codex novus utrasque formas scribit et novam legit; opus resumibile veteres ordines implet.
- 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
- Notas editionis lege. Quae editio fenestram maintenance desiderat id dicit, cum aestimatione; saltem una per editionem.
- Exercitium restitutionis exequere, aut confirma id pro hac editione viride cucurrisse (backup-restore.md). Exercitium fractum promotionem prohibet.
- 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 schedulerOrdo consultus est:
- Migrare primum, dum vetus editio trafficit servit. Migrationes expand ei invisibiles sunt.
- Stratum textorium deinde. In SIGTERM quisque processus web
/readyzindrainingvertit, petitiones in volatu intra 30 secundas absolvit, fluxus cum indice reconnectus claudit et exit.stop_grace_period40 secundae sunt ita ut Compose numquam sanam drainage abscindat. - 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 checkoutMigratio 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