Backend, API et données · Avancé

Migrations de schéma sans temps d'arrêt

En une ligne : Modifiez le schéma en étapes compatibles ascendantes : ajoutez, remplissez, changez et seulement à la fin — supprimez.

Le problème

Pendant une publication, deux versions de code tournent ensemble. Une migration qui modifie une colonne d'un coup en casse une. Donc chaque changement structurel est décomposé en une séquence d'étapes, chacune sûre par elle-même.

La séquence sûre

Ajouter. Une nouvelle colonne, nullable, sans toucher à l'existante.

Double écriture. Le code écrit dans les deux colonnes et préfère lire l'ancienne.

Remplissage. En petits lots, en dehors des heures de pointe, avec la possibilité de s'arrêter.

Changement de lecture. Après vérification que les données sont identiques.

Suppression. Dans une publication séparée, après avoir confirmé que personne ne lit.

Règles de prudence

Une migration sur une grande table peut bloquer. Vérifiez le comportement de verrouillage dans votre moteur et exécutez sur une copie de la taille de la production. Une sauvegarde avant, et un script de retour en arrière écrit à l'avance — pas improvisé sous pression.

Pour aller plus loin

Gérez les migrations comme du code en contrôle de version, avec exécution automatique et contrôle de l'ordre. Et ne mélangez pas un changement de schéma avec un changement de logique dans la même publication : quand quelque chose se casse, vous voulez savoir lequel des deux est en cause.