Sync wiki from project files

2026-07-07 12:22:03 +02:00
parent b75cbaa11f
commit df015793cc

@@ -1,4 +1,4 @@
<!-- codex-wiki-sync:61fae4ee464deceb4b661296 --> <!-- codex-wiki-sync:875c35f000f5984fa2fe7e49 -->
> Mirrored from `/mnt/DATA/git/govoplan-core/docs/RELEASE_DEPENDENCIES.md`. > Mirrored from `/mnt/DATA/git/govoplan-core/docs/RELEASE_DEPENDENCIES.md`.
> Origin: `repository`. > Origin: `repository`.
@@ -85,7 +85,22 @@ The installer uses a runtime lock, snapshots `pip freeze` plus WebUI
`runtime/module-installer/runs`, and marks planned rows as applied only after `runtime/module-installer/runs`, and marks planned rows as applied only after
all commands succeed. When `--migrate` is used with a `sqlite:///` database URL, all commands succeed. When `--migrate` is used with a `sqlite:///` database URL,
the installer also snapshots the SQLite database with SQLite's backup API before the installer also snapshots the SQLite database with SQLite's backup API before
running migrations. running migrations. For other database engines, pass external backup/restore
hooks:
```bash
govoplan-module-installer \
--supervise \
--migrate \
--database-backup-command 'pg_dump --format=custom "$GOVOPLAN_DATABASE_URL" > "$GOVOPLAN_DATABASE_BACKUP_PATH"' \
--database-restore-command 'pg_restore --clean --if-exists --dbname "$GOVOPLAN_DATABASE_URL" "$GOVOPLAN_DATABASE_BACKUP_PATH"' \
--health-url http://127.0.0.1:8000/health \
--restart-command '<restart govoplan server>'
```
The backup command runs before migrations. The restore command is stored in the
run record and runs during rollback unless an override is passed to
`--rollback`.
Supervised mode treats package command failure, migration failure, restart Supervised mode treats package command failure, migration failure, restart
failure, and health timeout as rollback triggers. It restores the Python/WebUI failure, and health timeout as rollback triggers. It restores the Python/WebUI
@@ -95,17 +110,30 @@ run outside the FastAPI server process; the admin UI saves and validates plans
but does not mutate packages from an HTTP request. but does not mutate packages from an HTTP request.
Package rollback is automatic. SQLite database rollback is automatic for Package rollback is automatic. SQLite database rollback is automatic for
installer runs that used `--migrate` and captured a database snapshot. Non-SQLite installer runs that used `--migrate` and captured a database snapshot.
production deployments must provide their own managed backup/restore procedure Non-SQLite rollback is automatic when the run used
before running migrations; the current installer blocks automatic migration `--database-backup-command` and `--database-restore-command`; otherwise migrated
backup for unsupported database URLs. non-SQLite runs are blocked before package changes are applied.
Rollback uses the saved run snapshot: Rollback uses the saved run snapshot:
```bash ```bash
govoplan-module-installer --rollback <run-id> govoplan-module-installer --rollback <run-id>
govoplan-module-installer --rollback <run-id> --database-restore-command '<override restore command>'
``` ```
Database hook commands run with these environment variables:
- `GOVOPLAN_INSTALLER_RUN_DIR`: the run snapshot directory
- `GOVOPLAN_DATABASE_URL`: the configured database URL
- `GOVOPLAN_DATABASE_BACKUP_PATH`: a suggested backup artifact path inside the
run directory
- `GOVOPLAN_DATABASE_BACKUP_METADATA`: optional JSON metadata path that backup
commands may write for operator diagnostics
Avoid embedding secrets directly in commands; prefer environment variables,
service credentials, or deployment-local secret injection.
Inspect installer history and lock state from the operator shell: Inspect installer history and lock state from the operator shell:
```bash ```bash