Drizzle ORM (integration officielle)
NestJS 🟡 MidDéfinition
Intégration officielle @nestjs/drizzle documentée sur docs.nestjs.com. Contrairement a TypeORM, Drizzle n'a pas d'étape forFeature() par table : DrizzleModule.forRootAsync() enregistre la base globalement et l'instance s'injecte partout via @InjectDrizzle().
Analogie
Comme une arrivée d'eau commune a tout un immeuble plutôt qu'un compteur par appartement : un seul enregistrement global, injectable partout.
Exemple de code
DrizzleModule.forRootAsync({
useFactory: (config: ConfigService) => ({
drizzle,
connection: config.getOrThrow<string>('DATABASE_URL'),
}),
inject: [ConfigService],
});
constructor(@InjectDrizzle() private db: NodePgDatabase) {}
Cas d'usage
Adopter un ORM TypeScript-first, sans décorateurs ni génération de code, avec un typage inféré du schema.
Anti-pattern
Termes liés
En entretien
Quelle différence entre l'intégration Drizzle et TypeORM dans NestJS ?
Contrairement à TypeORM, Drizzle n'a pas d'étape forFeature() par table : DrizzleModule.forRootAsync() enregistre la base globalement et l'instance s'injecte partout via @InjectDrizzle(). C'est un ORM TypeScript-first, sans décorateurs ni génération de code, avec un typage inféré du schema.
Quel anti-pattern un développeur venant de TypeORM pourrait reproduire par erreur ?
Répliquer le pattern forFeature() par table avec Drizzle, qui n'en a pas besoin puisque l'enregistrement est global. C'est inutile et ajoute de la complexité sans bénéfice.
Sources
Fiche mise à jour le 2026-09-27