PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Flyway mehrere Metadatentabellen in einem Schema

Eine ideale Lösung für Sie wäre, Ihre Module in Schemata aufzuteilen. Dies gibt Ihnen eine effektive Isolationseinheit pro Modul und ist auch eine natürliche Ergänzung für modulare Anwendungen (Module vollständig isoliert und selbstverwaltend), anstatt alles in einem einzigen Schema (insbesondere öffentlich) abzulegen. zB

application_database
    ├── public
    ├── module_1
    │   ├── schema_version
    │   ├── m1_t1
    │   └── m1_t2
    ├── module_2
    │   ├── schema_version
    │   ├── m2_t1
    │   └── m2_t2
    ...

Ihre zweite Option besteht darin, weiterhin das öffentliche Schema zum Hosten aller Tabellen zu verwenden, aber ein individuelles Schema für jede schema_version zu verwenden . Dies ist ein geringerer Refactoring-Aufwand, aber sicherlich ein weniger elegantes Design als das oben erwähnte. zB

application_database
    ├── public
    │   ├── m1_t1
    │   ├── m1_t2
    │   ├── m2_t1
    │   └── m2_t2
    ├── module_1
    │   └── schema_version
    │
    ├── module_2
    │   └── schema_version
    ...