ITSkillsCenter
Développement Web

Drizzle zero-downtime migration : tutoriel 2026

2 min de lecture

Migrer une base PostgreSQL avec Drizzle sans interruption de service en 2026.

Voir notre guide Drizzle migrations.

Patterns dangereux à éviter

  • DROP COLUMN avec données — l’ancienne version d’app crash
  • RENAME COLUMN — l’ancienne version ne trouve plus le nom
  • ALTER COLUMN TYPE non compatible (varchar→int)
  • ADD COLUMN NOT NULL sans default sur grosse table
  • CREATE INDEX sans CONCURRENTLY (bloque les writes)

Pattern : ajouter une colonne

  1. Migration 1 : ADD COLUMN nullable (compatible ancienne app)
  2. Déployer nouvelle version app qui écrit la colonne
  3. Backfill data pour anciennes lignes : UPDATE table SET col = 'default'
  4. Migration 2 : ALTER COLUMN SET NOT NULL

Pattern : renommer une colonne

  1. Migration 1 : ADD COLUMN new_name + trigger qui copie old_name → new_name
  2. Backfill data
  3. Déployer nouvelle version app qui lit/écrit new_name
  4. Migration 2 : DROP COLUMN old_name + DROP TRIGGER

Pattern : changer un type

  1. Migration 1 : ADD COLUMN new_col avec nouveau type
  2. Trigger qui sync ancien → nouveau
  3. App lit/écrit nouveau
  4. Drop ancien

Index sans bloquer

-- Pas
CREATE INDEX users_email_idx ON users(email);

-- Mais
CREATE INDEX CONCURRENTLY users_email_idx ON users(email);

Drizzle-kit ne génère pas CONCURRENTLY automatiquement. Éditez le SQL généré pour les grosses tables.

Tester la migration

  • En staging avec un dump prod récent
  • Mesurer la durée et le lock impact
  • Vérifier compat ancienne version app simultanément

Pour aller plus loin

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité