You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,7 @@
8
8
-[Tests d'intégration](#tests-dintégration)
9
9
-[Créer une PR](#créer-une-pr)
10
10
-[Déploiement](#déploiement)
11
+
-[Migrations](#migrations)
11
12
-[Guides](#guides)
12
13
-[Mettre à jour le changelog](#mettre-à-jour-le-changelog)
13
14
-[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
181
182
9. Merger la PR et suivre l'avancement du déploiement sur le CI
182
183
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.
183
184
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)
0 commit comments