Uma solução ideal para você seria dividir seus módulos em esquemas. Isso oferece uma unidade efetiva de isolamento por módulo e também é uma opção natural para aplicativos modulares (módulos completamente isolados e autogerenciáveis), em vez de despejar tudo em um único esquema (especialmente público). por exemplo
application_database
├── public
├── module_1
│ ├── schema_version
│ ├── m1_t1
│ └── m1_t2
├── module_2
│ ├── schema_version
│ ├── m2_t1
│ └── m2_t2
...
Sua segunda opção é continuar usando o esquema público para hospedar todas as tabelas, mas usar um esquema individual para cada
schema_version
. Isso é menos esforço de refatoração, mas certamente um design menos elegante do que o mencionado acima. por exemplo application_database
├── public
│ ├── m1_t1
│ ├── m1_t2
│ ├── m2_t1
│ └── m2_t2
├── module_1
│ └── schema_version
│
├── module_2
│ └── schema_version
...