Type-safe CRUD for Drizzle ORM in NestJS.
Configure the connection once in AppModule. Every entity gets the full CRUD surface — type-safe, dialect-aware, and ready to extend.
NestJS 10+Drizzle 0.28+PostgreSQLMySQL
Prerequisites
- 1Configure once in AppModule
DrizzleCrudModule.forRoot({ dialect: 'postgresql', connectionString: process.env.DATABASE_URL, schema, }); - 2A service is an empty subclass
export class UsersService extends SqlBaseCrudService<User> {} - 3Bind it to its table
DrizzleCrudModule.forFeature([ { service: UsersService, table: users }, ]);
That's it — UsersService now has find, create, update, delete, soft delete, restore, bulk ops, filtering, pagination, and full-text search.
What you get
Compatible with
PostgreSQL
MySQL
Node.js
Bun
Deno
Latest releases
findAll and count support list searchv3.1.0
Jun 29, 2026
Pass options.search to search across configured columns while keeping filters, pagination, sorting, relation filters, and total count in the same query path.
Bad client input maps to 400v3.0.4
Jun 21, 2026
Postgres data exceptions such as too-long values, CHECK violations, and numeric overflow now map to ValidationFailedException instead of leaking as raw 500s.
Case-insensitive string filters are exactv3.0.3
Jun 20, 2026
A bare-string filter now compiles to lower(col) = lower(val). The % / _ / \ characters in the value are treated as literal data, not wildcards.