Skip to content
Go back

Setting Up Drizzle ORM with PostgreSQL in Node.js

Setting Up Drizzle ORM with PostgreSQL in Node.js

Introduction

Drizzle ORM provides type-safe database queries. This guide covers installing and configuring Drizzle ORM with PostgreSQL in a Node.js project.

Prerequisites

Step 1: Initialize Project

mkdir drizzle-postgres
cd drizzle-postgres
npm init -y
npm install drizzle-orm pg pg-format

Step 2: Configure Database Connection

Create src/db.ts:

import { Pool } from 'pg';
import { drizzle } from 'drizzle-orm';

const pool = new Pool({
  connectionString: process.env.DATABASE_URL || 'postgres://user:pass@localhost:5432/mydb',
});

export const db = drizzle(pool);

Step 3: Define Schema

Create src/schema.ts:

import { pgTable, varchar, integer, serial } from 'drizzle-orm/pg-core';

export const users = pgTable('users', {
  id: serial('id').primaryKey(),
  email: varchar('email', { length: 255 }).notNull(),
  age: integer('age'),
});

Step 4: Perform Queries

Create src/index.ts:

import { db } from './db';
import { users } from './schema';

async function main() {
  // Insert user
  const [inserted] = await db.insert(users).values({ email: 'alice@example.com', age: 30 }).returning();
  console.log('Inserted user:', inserted);

  // Select users
  const allUsers = await db.select().from(users);
  console.log('All users:', allUsers);
}

main().catch(console.error);

Step 5: Run the App

npm run ts-node src/index.ts

Summary

Drizzle ORM’s clean API and TypeScript support simplify PostgreSQL interactions, enabling safe and maintainable database code.


Share this post on:

Previous Post
Writing Complex Migrations with Drizzle ORM
Next Post
Creating AI Embeddings with OpenAI for Semantic Search