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
...