mcpField
L
laravel:migrations-and-factories

laravel:migrations-and-factories

github.com/jpcaparas開発157157 回インストール17 週間前に更新
リポジトリ

laravel:migrations-and-factories について

テスト可能でロールバックできるスキーマ変更を管理する、Laravel開発者向けのマイグレーションとファクトリーのガイドです。運用ルール、シードデータ、データベーステストを扱います。

主な機能

  1. 01モデルにマイグレーションとファクトリーを用意
  2. 02マイグレーションでスキーマを変更
  3. 03状態修飾子でファクトリーを整理
  4. 04リレーションでデータ構造を構築
  5. 05トランザクションやRefreshDatabaseでテスト

活用シーン

  1. 01モデルとマイグレーション、ファクトリーを作成
  2. 02機能テスト用のデータを生成
  3. 03データベースのマイグレーションを安全に戻す

インストール

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

$npx skills add https://github.com/jpcaparas/superpowers-laravel --skill laravel:migrations-and-factories

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

詳細

マイグレーションとファクトリー

スキーマの変更を安全かつテスト可能にし、元に戻せるようにします。

コマンド

# Create model with migration + factory
sail artisan make:model Post -mfc   # or: php artisan make:model Post -mfc

# Run/rollback
sail artisan migrate                # or: php artisan migrate
sail artisan migrate:rollback --step=1   # or: php artisan migrate:rollback --step=1

# Fresh DB (dangerous; dev only)
sail artisan migrate:fresh --seed   # or: php artisan migrate:fresh --seed

ルール

  • 新しいモデルには、必ずマイグレーションとファクトリーを用意します
  • マイグレーションが main にマージされた後は、決して編集せず、新しいマイグレーションを追加します
  • フィーチャーブランチでは、そのブランチで作成したマイグレーションがまだマージされていなければ、修正できます
  • シーダークラスには現実的で最小限のデータセットを用意し、大規模なデータセットは外部に置きます
  • Laravel 13 以降:条件付きのスキーマ変更は Schema::hasForeignKey('posts', 'posts_user_id_foreign') で保護します。pgvector のカラムには $table->vector('embedding', dimensions: 1536) を使用します(laravel:vector-search を参照)

ファクトリー

  • ブール値フラグよりも、状態修飾子(例:->state([...]))を優先します
  • ファクトリーではリレーションシップ(例:belongsTo)を使用し、現実的なオブジェクトグラフを構築します
  • ファクトリーは高速に保ち、可能であれば時間のかかるセットアップはシードに移します

テスト

  • テストではファクトリーを使用し、手動での挿入は避けます
  • データベースにアクセスする統合テストでは、トランザクションまたは RefreshDatabase を使用します

コメント