PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Flyway plusieurs tables de métadonnées dans un schéma

Une solution idéale pour vous serait de diviser vos modules en schémas. Cela vous donne une unité d'isolation efficace par module et est également un choix naturel pour les applications modulaires (modules complètement isolés et autogérés), plutôt que de tout jeter dans un seul schéma (en particulier public). par exemple

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

Votre deuxième option est de continuer à utiliser le schéma public pour héberger toutes les tables, mais d'utiliser un schéma individuel pour chaque schema_version . C'est moins d'effort de refactoring mais certainement un design moins élégant que celui mentionné ci-dessus. par exemple

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