drizzle-generators
v1.0.1
Published
One-shot Drizzle ORM schema table generator — drizzle-generators add <table> -d <dialect>
Maintainers
Readme
drizzle-generators
One-shot Drizzle ORM schema table generator. Scaffold a table schema, barrel export, and validators from a single command.
npx drizzle-generators add users -d pg -v zodInstall
npm install --save-dev drizzle-generatorsRequires drizzle-orm as a peer dependency (with zod or typebox optional for validator generation).
Usage
Add a table
drizzle-generators add <table> [options]Options:
| Flag | Description |
|------|-------------|
| -d, --dialect <dialect> | Dialect: pg, mysql, sqlite (inferred from drizzle.config.ts if omitted) |
| -v, --validator [type] | Generate validator schema. Pass value (zod/typebox) or use flag alone for interactive prompt |
| -o, --out <path> | Output directory (inferred from drizzle.config.ts if omitted, default ./drizzle) |
Examples:
drizzle-generators add users -d pg
drizzle-generators add posts -d mysql -v zod
drizzle-generators add items -d sqlite -v
drizzle-generators add products -d pg -o ./src/db/schema
drizzle-generators add products # infers dialect from drizzle.config.tsGenerated output
Running drizzle-generators add users -d pg -v zod produces:
drizzle/
users.ts # Table schema
index.ts # Barrel export
validations/
users.ts # Zod schemas (createInsertSchema, createSelectSchema, createUpdateSchema)
index.ts # Validator barrel exportdrizzle.config.ts inference
If you already have a drizzle.config.ts in your project, drizzle-generators will automatically detect your dialect and output directory — no need to pass -d or -o:
// drizzle.config.ts
export default {
dialect: "postgresql",
schema: "./src/db/schema.ts",
out: "./src/db",
};drizzle-generators add products # infers dialect: postgresql, out: ./src/dbSupported dialects
- PostgreSQL (
pg) - MySQL (
mysql) - SQLite (
sqlite)
Supported validators
- Zod (
zod) - TypeBox (
typebox)
Development
git clone <repo>
npm install
npm run dev # run via tsx
npm test # vitest
npm run typecheck # tsc --noEmit
npm run build # tsup (esm + cjs + dts)