Skip to main content

Quick installation

Install Drizzle ORM and Drizzle Kit using your preferred package manager:
npm install drizzle-orm
npm install -D drizzle-kit
drizzle-orm: The core ORM library for your applicationdrizzle-kit: CLI companion for migrations and database management (dev dependency)

Database drivers

Drizzle ORM requires a database driver to connect to your database. Install the driver that matches your database:

PostgreSQL drivers

The most popular PostgreSQL driver for Node.js.
npm install pg
npm install -D @types/pg
import { drizzle } from 'drizzle-orm/node-postgres';
import { Pool } from 'pg';

const pool = new Pool({
  connectionString: process.env.DATABASE_URL,
});

const db = drizzle(pool);

MySQL drivers

Fast MySQL driver for Node.js with prepared statement support.
npm install mysql2
import { drizzle } from 'drizzle-orm/mysql2';
import mysql from 'mysql2/promise';

const connection = await mysql.createConnection({
  host: 'localhost',
  user: 'root',
  database: 'mydb',
});

const db = drizzle(connection);

SQLite drivers

Fast synchronous SQLite driver for Node.js.
npm install better-sqlite3
npm install -D @types/better-sqlite3
import { drizzle } from 'drizzle-orm/better-sqlite3';
import Database from 'better-sqlite3';

const sqlite = new Database('sqlite.db');
const db = drizzle(sqlite);

Project setup

After installing Drizzle ORM and your database driver, set up your project structure:
1

Create schema directory

Create a directory for your database schema files:
mkdir src/db
touch src/db/schema.ts
2

Configure Drizzle Kit

Create a drizzle.config.ts file in your project root:
import { defineConfig } from 'drizzle-kit';

export default defineConfig({
  schema: './src/db/schema.ts',
  out: './drizzle',
  dialect: 'postgresql',
  dbCredentials: {
    url: process.env.DATABASE_URL!,
  },
});
3

Set up environment variables

Create a .env file with your database connection string:
.env
DATABASE_URL=postgresql://user:password@host:5432/database
Never commit your .env file to version control. Add it to .gitignore.

Verify installation

Create a simple test file to verify your installation:
src/db/test.ts
import { drizzle } from 'drizzle-orm/node-postgres';
import { pgTable, serial, text } from 'drizzle-orm/pg-core';

// Define a simple schema
const users = pgTable('users', {
  id: serial('id').primaryKey(),
  name: text('name').notNull(),
});

// Initialize database connection
const db = drizzle(process.env.DATABASE_URL!);

console.log('Drizzle ORM installed successfully!');
Run the test:
node --loader tsx src/db/test.ts

Optional dependencies

TypeScript

Drizzle works best with TypeScript. If you haven’t installed it:
npm install -D typescript tsx @types/node

Schema validation

Integrate with runtime validation libraries:
npm install drizzle-zod zod

Next steps

Quickstart

Build your first application with Drizzle ORM

Schema Declaration

Learn how to define your database schema

Database Connection

Configure database connections for different drivers

Migrations

Set up database migrations with Drizzle Kit
Having issues? Check our best practices guide or join our Discord community for help.

Build docs developers (and LLMs) love