Перейти к основному содержимому

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.