Back to list
jamesjlundin

db-schema-change

by jamesjlundin

Monorepo template for building full-stack web and mobile apps. Next.js 16 + React Native + Better Auth + PostgreSQL + Drizzle + AI streaming. Auth, database, email, CI/CD—all wired up and ready to deploy on Vercel in minutes.

25🍴 0📅 Jan 18, 2026

SKILL.md


name: db-schema-change description: Handle Drizzle database schema changes safely. Generate and apply migrations, add tables and columns. Use when modifying database schema, adding tables, creating migrations, or making database changes. allowed-tools: Read, Grep, Glob, Write, Edit, Bash

Database Schema Change

Safely modify PostgreSQL schema using Drizzle ORM.

When to Use

  • "Add a new table for..."
  • "Add column to..."
  • "Create migration for..."
  • "Modify database schema"
  • "Add foreign key to..."

Important Files

FilePurpose
packages/db/src/schema.tsMain schema exports
packages/db/src/auth-schema.tsBetter Auth tables
packages/db/src/rag-schema.tsRAG embeddings tables
packages/db/drizzle/Generated migrations

Procedure

Step 1: Understand Current Schema

Read the schema file to understand existing tables:

Read: packages/db/src/schema.ts

Step 2: Plan the Change

Before making changes, confirm with user:

  • Table name and column definitions
  • Data types (see types.md)
  • Relationships (foreign keys)
  • Indexes needed
  • Whether data migration is required

Step 3: Modify Schema

Edit the appropriate schema file:

// packages/db/src/schema.ts
import { pgTable, text, timestamp, uuid } from 'drizzle-orm/pg-core';

export const newTable = pgTable('new_table', {
  id: uuid('id').primaryKey().defaultRandom(),
  name: text('name').notNull(),
  createdAt: timestamp('created_at').defaultNow().notNull(),
  updatedAt: timestamp('updated_at').defaultNow().notNull(),
});

Step 4: Generate Migration

Run migration generator:

pnpm -C packages/db migrate:generate

Step 5: Review Migration

Read the generated migration in packages/db/drizzle/ and verify:

  • Correct SQL statements
  • No data loss for existing tables
  • Proper indexes created

Step 6: Apply Migration (Local)

pnpm -C packages/db migrate:apply

Step 7: Verify

pnpm typecheck
pnpm lint

Checklist

  • Schema change planned with user
  • Schema file updated
  • Migration generated
  • Migration reviewed (no data loss)
  • Migration applied locally
  • TypeScript compiles
  • Existing tests still pass

Guardrails

  • NEVER drop columns without explicit user confirmation
  • NEVER run migrations on production directly (CI handles this)
  • ALWAYS generate migration before applying
  • ALWAYS review generated SQL before applying
  • If migration involves data transformation, create separate script
  • Ask user before destructive changes (DROP, TRUNCATE)

Score

Total Score

75/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon