mirror of
https://github.com/zvx-echo6/central.git
synced 2026-05-21 18:14:44 +02:00
880 B
880 B
Migration policy
Migrations must be idempotent
New migration files (007+) must use guards so they can be safely re-run without error:
CREATE TABLE IF NOT EXISTS ...CREATE INDEX IF NOT EXISTS ...INSERT ... ON CONFLICT DO NOTHING(orON CONFLICT ... DO UPDATEwhere the intent is upsert)ALTER TABLE ... ADD COLUMN IF NOT EXISTS ...
Migrations 003-006 predate this policy and are grandfathered. Do not rewrite them.
All schema changes go through migrate.py
Direct psql execution bypasses the schema_migrations tracker and
was the cause of the v0.2.0 reconcile. If a migration needs to be
applied on the live system, run:
sudo -u central /opt/central/.venv/bin/python -m scripts.migrate
Never apply migration SQL directly via psql, even as a superuser,
even "just to test." If migrate.py has a bug that's blocking you, fix
migrate.py.