47 lines
1.5 KiB
Markdown
47 lines
1.5 KiB
Markdown
|
|
# Migration Consolidation — v0.942
|
||
|
|
|
||
|
|
## Contexte
|
||
|
|
|
||
|
|
Les migrations v0→v0.803 (~91 fichiers) sont consolidées en un schéma unique pour les nouvelles installations.
|
||
|
|
|
||
|
|
## Trois chemins
|
||
|
|
|
||
|
|
| Cas | Action |
|
||
|
|
|-----|--------|
|
||
|
|
| **DB vide** | Appliquer `000_full_schema.sql` (généré par pg_dump) |
|
||
|
|
| **DB existante** (déjà migrée) | Appliquer `000_mark_consolidated.sql` — marque sans modifier le schéma |
|
||
|
|
| **DB consolidée** | Appliquer les migrations incrémentales après consolidation |
|
||
|
|
|
||
|
|
## Générer le schéma complet
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Depuis une DB avec toutes les migrations appliquées
|
||
|
|
pg_dump -h localhost -U veza -d veza --schema-only --no-owner --no-privileges \
|
||
|
|
-f veza-backend-api/migrations/000_full_schema.sql
|
||
|
|
```
|
||
|
|
|
||
|
|
## Marquer une base existante
|
||
|
|
|
||
|
|
Pour une base qui a déjà exécuté les 91 migrations, exécuter manuellement :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
psql $DATABASE_URL -f scripts/mark_consolidated.sql
|
||
|
|
```
|
||
|
|
|
||
|
|
Cela insère le marqueur dans `schema_migrations` sans modifier le schéma. L'outil de migration ignorera ensuite les anciennes migrations consolidées.
|
||
|
|
|
||
|
|
## Archive
|
||
|
|
|
||
|
|
Les migrations historiques sont archivées dans `veza-backend-api/migrations/archive/v0_to_v0803/` après consolidation. Voir le README de l'archive pour la liste complète.
|
||
|
|
|
||
|
|
## Test de parité
|
||
|
|
|
||
|
|
Valider que le schéma `000_full_schema.sql` produit un résultat équivalent aux 91 migrations :
|
||
|
|
|
||
|
|
```bash
|
||
|
|
# Optionnel : test avec testcontainers
|
||
|
|
go test ./tests/... -run MigrationParity -v
|
||
|
|
```
|
||
|
|
|
||
|
|
Validation manuelle acceptée si le test automatique n'est pas en place (plan de contingence v0.942).
|