ITSkillsCenter
Développement Web

Drizzle migrations avancées 2026 : guide complet (zero-downtime, CI/CD)

2 دقائق للقراءة

Au-delà du tutoriel basique, les migrations Drizzle en production demandent des patterns avancés : zero-downtime, rollback safe, gestion d’environnements multiples, CI/CD intégré. Voici le guide complet 2026.

Ce pilier couvre les patterns avancés. Les satellites détaillent : zero-downtime migrations, Drizzle Studio en pratique, Drizzle vs Prisma, multi-tenancy avec Drizzle.

Workflow migrations en équipe

  1. Dev modifie schéma TS dans src/db/schema.ts
  2. bun drizzle-kit generate → fichier SQL versionné dans drizzle/
  3. Commit Git du fichier SQL ET du schéma TS
  4. Code review : revoir le SQL généré (drizzle-kit peut parfois générer des migrations destructives)
  5. Merge → CI lance bun drizzle-kit migrate en staging
  6. Validation staging → promote vers prod
  7. Déploiement prod : migrate puis nouvelle version app

Configuration multi-environnement

// drizzle.config.ts
import { defineConfig } from "drizzle-kit";

export default defineConfig({
  schema: "./src/db/schema.ts",
  out: "./drizzle",
  dialect: "postgresql",
  dbCredentials: {
    url: process.env.DATABASE_URL!,
  },
  verbose: true,
  strict: true,
  schemaFilter: ["public"],
  migrations: {
    schema: "public",
    table: "drizzle_migrations",
  },
});

Migration zero-downtime

Voir notre tutoriel zero-downtime. Pattern : ajouter colonne nullable d’abord → backfill → contraintes plus tard.

CI/CD avec Forgejo Actions

# .forgejo/workflows/migrate.yml
name: Migrate DB

on:
  push:
    branches: [main]
    paths:
      - 'drizzle/**'
      - 'src/db/schema.ts'

jobs:
  migrate-staging:
    runs-on: ubuntu-latest
    environment: staging
    steps:
      - uses: actions/checkout@v4
      - uses: oven-sh/setup-bun@v1
      - run: bun install
      - run: bun drizzle-kit migrate
        env:
          DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}

  migrate-prod:
    needs: migrate-staging
    runs-on: ubuntu-latest
    environment: production
    steps:
      - uses: actions/checkout@v4
      - uses: oven-sh/setup-bun@v1
      - run: bun install
      - run: bun drizzle-kit migrate
        env:
          DATABASE_URL: ${{ secrets.PROD_DATABASE_URL }}

Drizzle Studio

UI graphique pour explorer la base. Voir notre tutoriel Drizzle Studio.

Multi-tenancy

Voir notre tutoriel multi-tenancy : approches schema-per-tenant ou row-level security.

Adaptation Afrique de l’Ouest

Pour PME africaines avec déploiements continus, le combo Drizzle + Forgejo Actions + Coolify donne un workflow CI/CD complet sans dépendance cloud externe. Migrations versionnées dans Git, déployées automatiquement après tests.

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é