PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Flyway più tabelle di metadati in un unico schema

Una soluzione ideale per te sarebbe quella di dividere i tuoi moduli in schemi. Ciò fornisce un'unità di isolamento efficace per modulo ed è anche una scelta naturale per applicazioni modulari (moduli completamente isolati e autogestiti), piuttosto che scaricare tutto in un unico schema (soprattutto pubblico). es.

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

La tua seconda opzione è continuare a utilizzare lo schema pubblico per ospitare tutte le tabelle, ma utilizzare uno schema individuale per ogni schema_version . Questo è uno sforzo di refactoring minore ma sicuramente un design meno elegante di quello menzionato sopra. es.

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