mcpField
D
database-migrations

database-migrations

github.com/langchain-aiデータ・データベース11960 回インストール10 週間前に更新
リポジトリ

database-migrations について

database-migrationsは、データベースのスキーマ変更を安全かつ確実に管理するためのガイドです。マイグレーションファイルを作成・保守する開発者向けに、ロールバックやインデックス、テストの方法を扱います。

主な機能

  1. 01順序に沿ったマイグレーションファイル管理
  2. 02スキーマ変更のロールバック手順
  3. 03列追加時のインデックス作成
  4. 04変更を原子的にするトランザクション
  5. 05本番環境でのインデックス並行作成

活用シーン

  1. 01データベースへの列とインデックスの追加
  2. 02ロールバック手順を備えたテーブル作成
  3. 03本番データのコピーでマイグレーションをテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/langchain-ai/skills-benchmarks --skill database-migrations

インストール後、Claude Code で/database-migrationsを入力して読み込まれたか確認します。

詳細

データベース移行のパターン

データベーススキーマの変更を安全かつ確実に管理します。

移行ファイルの構造

migrations/
  001_create_users.sql
  002_add_email_index.sql
  003_create_orders.sql

安全な移行の記述

カラムの追加
-- migrations/004_add_user_status.sql
-- Up
ALTER TABLE users ADD COLUMN status VARCHAR(20) DEFAULT 'active';
CREATE INDEX idx_users_status ON users(status);

-- Down
DROP INDEX idx_users_status;
ALTER TABLE users DROP COLUMN status;
テーブルの作成
-- migrations/005_create_audit_log.sql
-- Up
CREATE TABLE audit_log (
    id SERIAL PRIMARY KEY,
    table_name VARCHAR(100) NOT NULL,
    record_id INTEGER NOT NULL,
    action VARCHAR(20) NOT NULL,
    changed_by INTEGER REFERENCES users(id),
    changed_at TIMESTAMP DEFAULT NOW(),
    old_values JSONB,
    new_values JSONB
);

CREATE INDEX idx_audit_log_table ON audit_log(table_name, record_id);
CREATE INDEX idx_audit_log_time ON audit_log(changed_at);

-- Down
DROP TABLE audit_log;

ベストプラクティス

  1. 必ずロールバック(down)移行を含めます
  2. 既存の移行は変更せず、新しい移行を作成します
  3. 本番データのコピーで移行をテストします
  4. アトミックな変更にはトランザクションを使用します
  5. 本番環境ではインデックスを同時に追加します:CREATE INDEX CONCURRENTLY

コメント