DEV Community

Cover image for Zero-Config DB Setup with Drizzle ORM Using drizzle-setup CLI
Dev Gaurav Jatt
Dev Gaurav Jatt

Posted on

Zero-Config DB Setup with Drizzle ORM Using drizzle-setup CLI

πŸ“š Supercharge Your Drizzle ORM Workflow with drizzle-setup CLI

Setting up a modern ORM for your project should be fast, reliable, and flexible. That’s where drizzle-setup cli comes in β€” a powerful utility to automatically scaffold your Drizzle ORM setup for PostgreSQL, SQLite, MySQL, and more.

Whether you’re working on a side project or spinning up a production-ready stack, drizzle-setup ensures a frictionless experience from zero to fully-configured.


✨ Why Use drizzle-setup?

Here’s what makes this CLI a game-changer:

  • πŸ“¦ Zero Config Setup – Get started with just a few prompts.

  • πŸ“œ Drizzle Scripts – Automatically populates your package.json with useful Drizzle CLI commands.

  • πŸ”§ .env Auto Update – Adds all essential environment variables without manual hassle.

  • 🧩 Multi-DB Support – Works with PostgreSQL, SQLite, MySQL, and more.

  • πŸ“ Template Copying – Sets up your schema.ts and index.ts instantly.


πŸ“¦ Installation

You can install globally using your favorite package manager:

npm install -g drizzle-setup
# or use npx for one-time setup
npx drizzle-setup
Enter fullscreen mode Exit fullscreen mode

πŸš€ Quick Start

In your project root, run:

drizzle-setup
Enter fullscreen mode Exit fullscreen mode

You’ll be guided through:

  1. Selecting a database (PostgreSQL, SQLite, etc.)

  2. Choosing a preset config

  3. Setting the target folder

  4. Copying boilerplate files

  5. Generating drizzle.config.ts

  6. Updating .env and package.json

  7. Installing required dependencies


πŸ§ͺ Supported Databases

  • PostgreSQL: Default, Neon, PlanetScale and more.

  • SQLite: Default, Turso, Bun SQLite and more.

  • MySQL: Default, Turso, Bun SQLite and more.

Each choice is tailored with optimal templates and .env configs.


🧱 Resulting Directory Structure

Once setup completes, your project might look like this:

project-root/
β”œβ”€β”€ drizzle.config.ts
β”œβ”€β”€ .env
β”œβ”€β”€ [target-folder]/
β”‚   β”œβ”€β”€ schema.ts
β”‚   └── index.ts

Enter fullscreen mode Exit fullscreen mode

πŸ”— Try it Now

Ready to skip the boilerplate and get building?

npx drizzle-setup
Enter fullscreen mode Exit fullscreen mode

πŸ’¬ Have Feedback?

Drop your suggestions or issues in the GitHub repo or tweet with the hashtag #DrizzleSetupCLI.


Top comments (3)

Collapse
Β 
dotallio profile image
Dotallio β€’

Zero-config for Drizzle ORM is something I’ve definitely been wishing for. How does it hold up when switching between multiple DB environments in the same project?

Collapse
Β 
devgauravjatt profile image
Dev Gaurav Jatt β€’

v0.0.5

✨ feat(env): add support for multiple .env files

  • implemented support for updating multiple .env* files
  • added functionality to create a default .env file if none exist
  • improved handling of existing environment variables to avoid overwriting
  • enhanced error handling and logging for robustness
  • added glob package for file searching
  • updated documentation to reflect changes
Collapse
Β 
devgauravjatt profile image
Dev Gaurav Jatt β€’

Some comments may only be visible to logged-in visitors. Sign in to view all comments.