drizzle-nextjs-postgres

v2026.09.24

Drizzle ORM against PostgreSQL inside a Next.js App Router app. Covers client construction (globalThis singleton across HMR, serverless pool sizing, `prepare:false` behind PgBouncer/Supavisor, driver choice when you need interactive transactions, `server-only`), reads in Server Components under Next.js 16 Cache Components (`use cache` superseding `unstable_cache` and the `revalidate`/`dynamic` segment configs, Suspense boundaries, React `cache()` dedupe), Server Actions (authorization inside the action, `updateTag` vs `revalidateTag`, `after()`), Postgres schema types (timestamptz, identity vs serial, jsonb, numeric-as-string, bigint modes), drizzle-kit migrations (generate vs push, CONCURRENTLY outside the migrator, NOT VALID constraints, rename prompts), transactions and pooled connections, and Postgres query traps (keyset pagination, count cost, driver-dependent `db.execute()` shape, NOT IN nulls, prepared statements). Use when writing or reviewing Drizzle + Postgres code in Next.js.

GitHub
安装命令
npx skhub add pproenca/drizzle-nextjs-postgres
Markdown
SKILL.md

Drizzle + PostgreSQL in Next.js

Library-reference skill for Drizzle ORM on PostgreSQL inside the Next.js App Router — 36 rules across 7 categories. Each rule names the wrong default it corrects; there is no rule for things a capable model already gets right.

This skill is self-contained: it includes the migration-workflow and type-inference rules a Postgres + Next.js developer needs even where the underlying wrong default is not Postgres-specific, so you never have to load a second skill mid-task. A few of those knowingly overlap the sibling drizzle-sqlite skill (same wrong default, restated for this context); the rest are decisions that only exist, or only bite differently, because the dialect is PostgreSQL or the code runs in the App Router.

Pinned to drizzle-orm 0.45.2, drizzle-kit 0.31.10, Next.js 16.2.11, PostgreSQL 14+.

When to Apply

  • Writing or reviewing the lib/db module — driver choice, pooling, singletons, server-only
  • Fetching data in a Server Component, Route Handler, or generateMetadata with db.select() / db.query.*
  • Deciding what to cache: use cache, cacheLife, cacheTag, React cache(), or nothing
  • Writing a Server Action that mutates rows and has to invalidate what the read path cached
  • Defining or changing a pgTable — column types, indexes, enums, constraints
  • Running drizzle-kit generate / migrate / push, or hand-editing a generated .sql file
  • Wrapping work in db.transaction(), or debugging a race, deadlock, or exhausted pool
  • Reviewing a list, count, or pagination query that is fine locally and slow in production

Rule Categories

#CategoryPrefixCovers
1Client Construction & Driver Choiceconn-Singletons across HMR, serverless pool sizing, poolers, driver capability, server-only, passing schema
2Reads in Server Componentsrsc-Suspense boundaries, use cache / cacheLife / cacheTag, request dedupe, waterfalls, runtime choice
3Server Actions & Mutationsmut-Authorization and validation in the action, cache invalidation, deferred writes
4Postgres Schema Definitionschema-timestamptz, identity columns, text vs varchar, numeric, jsonb, bigint modes, table config, enums
5Migrations & Schema Change Safetymigrate-generate vs push, concurrent indexes, where migrations run, renames, lock-safe constraints
6Transactions & Pooled Connectionstx-Connection cost of a held transaction, row locking, serialization retries
7Postgres Query Buildingquery-Keyset pagination, count cost, driver-dependent execute shape, NULL semantics, prepared statements

Quick Reference

1. Client Construction & Driver Choice

2. Reads in Server Components

3. Server Actions & Mutations

4. Postgres Schema Definition

5. Migrations & Schema Change Safety

6. Transactions & Pooled Connections

7. Postgres Query Building

How to Use

Read a reference file when its decision comes up. Each rule names the wrong default it corrects, then shows the canonical way (with an incorrect/correct contrast only where the wrong way is a real trap).

Related Skills

  • drizzle-sqlite — the same ORM against SQLite-family backends; covers the dialect-agnostic query-building rules this skill deliberately omits
  • nextjs — App Router patterns beyond the data layer
  • relational-database-design — choosing the schema this skill teaches you to declare

Reference Files

FileDescription
references/_sections.mdCategory definitions and ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and source references
发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

Sep 24, 2026

分类

未分类

许可证

MIT

源路径

skills/.experimental/drizzle-nextjs-postgres

默认分支

master

最新提交

cf93c57

Tree SHA

afbb575