Dokumentace
Centrum nápovědyDevOpsMigrační strategie
docs/cs/05-devops/migration-strategy.md

Migrační strategie (Prisma + Postgres)

Tento dokument definuje bezpečný přístup ke změnám schématu v kontextu multi-tenant SaaS.

Operativní recovery postup pro staging při rozjeté Prisma history je v prisma-drift-recovery-staging.md.

Cíle

  • Zachovat integritu dat a izolaci tenantů.
  • Umožnit evoluci bez rozbití existujících projektů a auditních stop.
  • Mít důvěryhodný rollback/mitigace příběh pro produkční incidenty.

Migrační principy

  • Preferovat zpětně kompatibilní migrace:
  • nejdřív přidat nové sloupce/tabulky
  • nasadit kód, který umí číst starý i nový tvar
  • následně uklidit v pozdějších migracích
  • Vyhnout se destruktivním změnám bez recovery plánu.

Migrační workflow (konceptuálně)

  1. 1.Navrhnout změnu schématu s ohledem na tenancy a indexování.
  2. 2.Napsat migraci pomocí Prisma migrations.
  3. 3.Ověřit na stagingu s reprezentativním objemem dat.
  4. 4.Nasadit aplikační kód a aplikovat migrace v kontrolovaném releasu.
  5. 5.Monitorovat error rate a výkon.

Když se staging rozjede

Pokud se staging databáze a lokální Prisma history rozjedou, nepoužívej improvizovaný reset. Postupuj podle prisma-drift-recovery-staging.md.

Rollback strategie

Protože rollback schématu může být rizikový, OPORA používá vrstvený mitigace přístup:

  • Application rollback: návrat na předchozí verzi aplikace, pokud je kompatibilní se schématem.
  • Forward-fix: následná migrace, která opraví problém (preferované, když rollback není bezpečný).
  • Backups: spolehnout se na DB backupy pro disaster recovery scénáře.

Tenant safety checky

  • Každá nová tenant-owned tabulka musí mít organizationId a vhodné indexy.
  • Po změnách schématu musí dotazy zůstat org-scoped.
  • Validovat, že joiny nezavedou cross-tenant expozici.

Dopady na verzi enginu

Pokud migrace mění uložené reprezentace vstupů/výstupů:

  • zachovat schopnost interpretovat historické Projekty
  • uložit explicitní verzi enginu a/nebo schema version marker, pokud je potřeba
  • zapsat materiální rozhodnutí jako ADR