Skip to content
cccskills
FreePublished on GitHub

database

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

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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.

The English summary is being prepared. Showing the original description.

sean-sunagaku/claude-code-plugin38Updated Jul 30, 2026

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"

The English summary is being prepared. Showing the original description.

sean-sunagaku/claude-code-plugin38Updated Jul 30, 2026

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

The English summary is being prepared. Showing the original description.

sean-sunagaku/claude-code-plugin38Updated Jul 30, 2026

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"

The English summary is being prepared. Showing the original description.

sean-sunagaku/claude-code-plugin38Updated Jul 30, 2026

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

The English summary is being prepared. Showing the original description.

sean-sunagaku/claude-code-plugin38Updated Jul 30, 2026

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

The English summary is being prepared. Showing the original description.

sean-sunagaku/claude-code-plugin38Updated Jul 30, 2026

See all skills by sean-sunagaku

Report a problem with this skill