Skip to content

Commit a2877fa

Browse files
committed
Note on migrations
1 parent 656786d commit a2877fa

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

CONTRIBUTING.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
- [Tests d'intégration](#tests-dintégration)
99
- [Créer une PR](#créer-une-pr)
1010
- [Déploiement](#déploiement)
11+
- [Migrations](#migrations)
1112
- [Guides](#guides)
1213
- [Mettre à jour le changelog](#mettre-à-jour-le-changelog)
1314
- [Mettre à jour la documentation](#mettre-à-jour-la-documentation)
@@ -181,6 +182,17 @@ Chaque update de la branche `dev` déclenche un déploiement sur l'environnement
181182
9. Merger la PR et suivre l'avancement du déploiement sur le CI
182183
10. Se connecter à l'instance de prod et faire tourner le script `npm run update` dans le container `td-api`. Faire de même sur l'instance sandbox.
183184

185+
## Migrations
186+
187+
Les migrations de base peuvent se faire soit en SQL, soit via des script TypeScript.
188+
Pour le SQL elles sont situées dans `back/prisma/migrations`. Les fichiers sont numérotés dans l'ordre croissant. Ils doivent être nommé `XX_any-namme.sql`.
189+
A noter que une fois que ces migrations ont été jouées, le contenu des fichiers est hashé dans la table migration et il ne faut donc surtout pas les modifier.
190+
191+
Pour les migrations scriptées, c'est dans `back/prisma/scripts`. Les migrations doivent prendre la forme d'une classe, implémentant `Updater` et décorée par `registerUpdater`.
192+
Attention, contrairement aux scripts SQL ces migrations ne sont pas jouées une seules fois. Il faut donc s'assurer qu'elles sont idempotentes, ou les désactiver après chaque mise en production.
193+
194+
Toutes ces migrations sont jouées avec la commande `npm run update:dev`. (sans le suffixe `:dev` en production)
195+
184196
## Guides
185197

186198
### Mettre à jour le changelog

0 commit comments

Comments
 (0)