database-migrations について
database-migrationsは、データベースのスキーマ変更を安全かつ確実に管理するためのガイドです。マイグレーションファイルを作成・保守する開発者向けに、ロールバックやインデックス、テストの方法を扱います。
主な機能
- 01順序に沿ったマイグレーションファイル管理
- 02スキーマ変更のロールバック手順
- 03列追加時のインデックス作成
- 04変更を原子的にするトランザクション
- 05本番環境でのインデックス並行作成
活用シーン
- 01データベースへの列とインデックスの追加
- 02ロールバック手順を備えたテーブル作成
- 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;
ベストプラクティス
- 必ずロールバック(down)移行を含めます
- 既存の移行は変更せず、新しい移行を作成します
- 本番データのコピーで移行をテストします
- アトミックな変更にはトランザクションを使用します
- 本番環境ではインデックスを同時に追加します:
CREATE INDEX CONCURRENTLY
コメント
Markdown 対応