ADR-0029: Database Migrations И Seeding
Статус
Принято.
Контекст
Pin использует PostgreSQL, ClickHouse и Elasticsearch. Ошибка миграции может повредить деньги, права доступа, analytics projections или search indexes.
Решение
Каждая миграция принадлежит owning service и выполняется через Migrator project или documented runner. Seed data разделяется на reference data, permission definitions, system roles, provider dictionaries и demo data. Production changes должны быть forward-compatible.
Последствия
- Destructive migration требует ADR/approval/rollback plan.
- Каждая production-bound migration проходит pre-migration checklist и dry run.
- Seed должен быть идемпотентным.
- Rollback предпочтительно выполняется forward-fix migration.
- Elasticsearch indexes версионируются через alias strategy.
- ClickHouse backfills имеют checkpoint и reconciliation report.