From database
Guides schema management and migrations using Drizzle ORM with SQLite in TypeScript projects. Edit schema.ts, generate migrations via pnpm db:generate, and apply safely on dev startup.
How this skill is triggered — by the user, by Claude, or both
Slash command
/database:databaseThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Drizzle ORM を使ったデータベーススキーマの管理とマイグレーションに関するガイド。
Drizzle ORM を使ったデータベーススキーマの管理とマイグレーションに関するガイド。
手動でマイグレーションSQLファイルを作成しない
drizzle/ ディレクトリに直接 .sql ファイルを作成してはいけないpnpm db:generate で自動生成する手動でDBを直接操作しない
sqlite3 コマンドで直接 ALTER TABLE などを実行しないdrizzle/meta/_journal.json を手動で編集しない
drizzle-kit が自動管理するファイルschema.ts から始めるpnpm db:generate で生成するpackages/server/src/db/schema.ts を編集する。
// 例: sessions テーブルに新しいカラムを追加
export const sessions = sqliteTable('sessions', {
id: text('id').primaryKey(),
// ... 既存のカラム
newColumn: text('new_column'), // 追加
});
cd packages/server
pnpm db:generate
これで drizzle/XXXX_<random_name>.sql が自動生成される。
開発環境では、サーバー起動時に自動適用される:
pnpm dev
または手動で適用:
pnpm db:migrate
サーバーを起動して、エラーがないことを確認。
packages/server/
├── drizzle.config.ts # Drizzle Kit 設定
├── drizzle/ # マイグレーションファイル (自動生成)
│ ├── 0000_init.sql
│ ├── 0001_xxx.sql
│ └── meta/ # マイグレーションメタデータ (自動管理)
│ ├── _journal.json
│ └── XXXX_snapshot.json
└── src/
└── db/
├── schema.ts # スキーマ定義 (これを編集)
└── index.ts # DB接続・マイグレーション実行
すべてのコマンドは packages/server ディレクトリから実行する。
| コマンド | 説明 |
|---|---|
pnpm db:generate | スキーマからマイグレーションファイルを自動生成 |
pnpm db:migrate | マイグレーションを適用 |
pnpm db:push | スキーマを直接DBに反映 (開発用のみ) |
pnpm db:studio | Drizzle Studio (DB GUI) を起動 |
アプリケーション起動時に initializeDatabase() が呼ばれ、未適用のマイグレーションが自動実行される。
// packages/server/src/db/index.ts
import { migrate } from 'drizzle-orm/better-sqlite3/migrator';
export function initializeDatabase(): void {
migrate(db, { migrationsFolder: './drizzle' });
}
drizzle/meta/_journal.json にエントリがあるか確認rm .brandize/brandize.db && pnpm devrm packages/server/.brandize/brandize.db
pnpm dev # 再起動で再作成
| テーブル | 説明 | 主要カラム |
|---|---|---|
projects | プロジェクト管理 | id, name, description, working_dir |
sessions | 会話セッション | id, project_id, title, type, topic |
messages | メッセージ履歴 | id, session_id, role, content |
logos | ロゴ生成履歴 | id, project_id, brand_name, svg |
worktrees | Git worktree 管理 | id, project_id, branch_name, path |
project_configs | プロジェクト設定 | id, project_id, brand_name, etc. |
npx claudepluginhub sean-sunagaku/claude-code-plugin --plugin databaseGuides through Drizzle schema migration workflows using drizzle-kit generate, push, introspect, and migrate. Covers config, review, and custom SQL migration steps.
Provides expertise in Drizzle ORM for TypeScript: schema design, relational queries, Drizzle Kit migrations, and serverless integrations with Neon, Supabase, PlanetScale.
Generates database migrations with schema changes and rollback, detecting framework (Knex, Prisma, TypeORM, raw SQL) and validating safety.