本文へ移動
cccskills
無料GitHub で公開

database

Drizzle ORM を使ったデータベーススキーマの管理とマイグレーションの実行方法

インストール方法を見る

含まれるファイル(1)

  • SKILL.md4.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Database Management (Drizzle ORM)

Drizzle ORM を使ったデータベーススキーマの管理とマイグレーションに関するガイド。

絶対に守るべきルール

禁止事項

  1. 手動でマイグレーションSQLファイルを作成しない

    • drizzle/ ディレクトリに直接 .sql ファイルを作成してはいけない
    • 必ず pnpm db:generate で自動生成する
  2. 手動でDBを直接操作しない

    • sqlite3 コマンドで直接 ALTER TABLE などを実行しない
    • 必ずマイグレーション経由で変更する
  3. drizzle/meta/_journal.json を手動で編集しない

    • これは drizzle-kit が自動管理するファイル

必須事項

  1. スキーマ変更は必ず schema.ts から始める
  2. マイグレーションは必ず pnpm db:generate で生成する
  3. 生成されたマイグレーションファイルは必ずコミットする

スキーマ変更の正しい手順

Step 1: スキーマを編集

packages/server/src/db/schema.ts を編集する。

// 例: sessions テーブルに新しいカラムを追加
export const sessions = sqliteTable('sessions', {
  id: text('id').primaryKey(),
  // ... 既存のカラム
  newColumn: text('new_column'),  // 追加
});

Step 2: マイグレーションファイルを生成

cd packages/server
pnpm db:generate

これで drizzle/XXXX_<random_name>.sql が自動生成される。

Step 3: マイグレーションを適用

開発環境では、サーバー起動時に自動適用される:

pnpm dev

または手動で適用:

pnpm db:migrate

Step 4: 動作確認

サーバーを起動して、エラーがないことを確認。


Project Structure

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接続・マイグレーション実行

Commands

すべてのコマンドは packages/server ディレクトリから実行する。

コマンド説明
pnpm db:generateスキーマからマイグレーションファイルを自動生成
pnpm db:migrateマイグレーションを適用
pnpm db:pushスキーマを直接DBに反映 (開発用のみ)
pnpm db:studioDrizzle Studio (DB GUI) を起動

Runtime Migration

アプリケーション起動時に initializeDatabase() が呼ばれ、未適用のマイグレーションが自動実行される。

// packages/server/src/db/index.ts
import { migrate } from 'drizzle-orm/better-sqlite3/migrator';

export function initializeDatabase(): void {
  migrate(db, { migrationsFolder: './drizzle' });
}

Troubleshooting

マイグレーションが適用されない

  1. drizzle/meta/_journal.json にエントリがあるか確認
  2. 手動でSQLファイルを作成していないか確認
  3. DBを一度リセット: rm .brandize/brandize.db && pnpm dev

DBをリセットしたい

rm 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
worktreesGit worktree 管理id, project_id, branch_name, path
project_configsプロジェクト設定id, project_id, brand_name, etc.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

This skill should be used when the user asks to "create a team", "spawn agents", "parallel execution", "delegate tasks to agents", "use a swarm", "team workflow", "split work across agents", "run tasks in parallel", or mentions wanting multiple agents to collaborate on a complex task.

日本語の概要は準備中です。原文の説明を表示しています。

sean-sunagaku/claude-code-plugin382026年7月30日 更新

agent-team-guide

無料日本語概要

Agent Teams スキルを設計・構築するためのベストプラクティスガイド。 サブエージェント定義、SendMessage 通信プロトコル、タスク依存管理、 PostToolUse Hook によるログ、MCP ツール統合、コンテキストファイル設計を網羅。 7つの実績あるチームスキル(app-naming, ui-review, logo-design, persona-creation, skill-creator-team, ui-variations, aso-optimize)から抽出したパターン集。 Use when: Agent Teams を使ったスキルを新規作成したい、 既存のチームスキルの品質を改善したい、エージェント間通信のデバッグ、 チームスキルの設計パターンを知りたい。 Triggers: "agent team", "チームスキル", "エージェントチーム", "サブエージェント定義", "SendMessage パターン", "チーム設計", "エージェント間通信", "team skill", "swarm pattern"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-naming

無料日本語概要

アプリ名・サービス名の命名を、5つの専門エージェントチームで多角的に評価・決定するスキル。 ブランディング、商標/法的リスク、デジタルプレゼンス(SEO/ASO/SNS)、国際展開(多言語/発音)の 4観点から候補を提案・調査・議論し、コンテキストファイルと議事録で次回セッションへ引き継ぐ。 Use when: アプリ名を決めたい、サービス名を変更したい、プロダクト名を検討したい、 ネーミングブレスト、名前の商標チェック、アプリ名のリネーム。 Triggers: "アプリ名", "サービス名", "プロダクト名", "ネーミング", "名前を決め", "リネーム", "rename", "app name", "naming", "ブランド名", "商標チェック"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-store-preview-movie

無料日本語概要

App Store プレビュー動画を Remotion (React) で生成する Agent Team スキル。 video-director が構成を設計し、script-writer がナレーション台本を作成し、 motion-designer が Remotion コードを実装し、preview-reviewer がコードレビューし、 frame-inspector がレンダリング結果を目視検証する。 Use when: App Store プレビュー動画を作りたい、アプリのプロモーション動画を作りたい、 Remotion で動画を生成したい。 Triggers: "プレビュー動画", "App Store 動画", "アプリ動画", "preview movie", "Remotion", "動画作成", "app preview"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-tone-manner

無料日本語概要

アプリのトーン&マナー(トンマナ)を8名のエージェントチームで設計するスキル。 ブランドアーキタイプ・パーソナリティ定義から、カラー・タイポグラフィ・ビジュアルスタイル・ トーン・オブ・ボイスまでを一貫設計し、Pencil (.pen) + Markdown で成果物を出力する。 「デザインテンション」(矛盾ペア)を核に、AIっぽくない独自のブランドアイデンティティを生成する。

sean-sunagaku/claude-code-plugin382026年7月30日 更新

arch-design

無料日本語概要

仕様書・要件定義からソフトウェアアーキテクチャを設計するスキル。 5人の専門エージェント(Architecture Lead・Module Designer・Dependency Analyst・ Platform Expert・Devil's Advocate)が協議しながら、 モジュール分割・依存関係・データフロー・インターフェース設計を行う。 成果物は構造化されたアーキテクチャ設計書(Markdown)。 Use when: 仕様書からどう設計するか迷っている時、モジュール分割の方針を決めたい時、 技術スタックに合ったアーキテクチャパターンを選びたい時、 設計書を作成したい時。 Triggers: "アーキテクチャ設計", "arch design", "仕様書から設計", "モジュール分割", "設計書を作りたい", "アーキテクチャを考えて", "コンポーネント設計", "依存関係を設計", "どう設計する", "design the architecture", "design from spec"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

sean-sunagaku のスキルをすべて見る

このスキルの問題を報告する