postgres-drizzle

Verified·Scanned 2/18/2026

Proactively apply when creating APIs, backends, or data models. Triggers on PostgreSQL, Postgres, Drizzle, database, schema, tables, columns, indexes, queries, migrations, ORM, relations, joins, transactions, SQL, drizzle-kit, connection pooling, N+1, JSONB, RLS. Use when writing database schemas, queries, migrations, or any database-related code. PostgreSQL and Drizzle ORM best practices.

by ccheney·v025d8af·89.0 KB·159 installs
Scanned from main at 025d8af · Transparency log ↗
$ vett add ccheney/robust-skills/postgres-drizzle

postgres-drizzle

PostgreSQL and Drizzle ORM best practices. This skill activates automatically when writing database schemas, queries, migrations, or any database-related code.

Topics Covered

CategoryTopics
SchemaColumn types, constraints, indexes, enums, JSONB, relations
QueriesOperators, joins, aggregations, subqueries, transactions
RelationsOne-to-many, many-to-many, relational queries API
Migrationsdrizzle-kit commands, workflows, configuration
PostgreSQLPG18 features, RLS, partitioning, full-text search
PerformanceIndexing strategies, query optimization, connection pooling

Example Usage

"Create a users table with email and timestamps"
"Add a posts table with foreign key to users"
"Write a query to get users with their posts"
"Set up drizzle migrations for production"
"Optimize this slow database query"

Skill Structure

  • SKILL.md - Main skill file (concise overview)
  • Reference Files:
    • SCHEMA.md - Column types, constraints, indexes
    • QUERIES.md - Query patterns and operators
    • RELATIONS.md - Relations API and relational queries
    • MIGRATIONS.md - drizzle-kit workflows
    • POSTGRES.md - PostgreSQL 18 features
    • PERFORMANCE.md - Optimization and pooling
    • CHEATSHEET.md - Quick reference

Quick Start

import { pgTable, uuid, text, timestamp, index } from 'drizzle-orm/pg-core';
import { relations } from 'drizzle-orm';
import { drizzle } from 'drizzle-orm/postgres-js';
import postgres from 'postgres';

// Schema
export const users = pgTable('users', {
  id: uuid('id').primaryKey().defaultRandom(),
  email: text('email').notNull().unique(),
  createdAt: timestamp('created_at', { withTimezone: true }).defaultNow(),
}, (table) => [
  index('users_email_idx').on(table.email),
]);

// Connection
const client = postgres(process.env.DATABASE_URL!);
export const db = drizzle(client, { schema: { users } });

// Query
const user = await db.query.users.findFirst({
  where: eq(users.email, 'user@example.com'),
});

Resources