migrate:status — マイグレーションの状態を確認するコマンド

未分類

migrate:status

対象名: migrate:status
カテゴリ: artisan
種類: コマンド
掲載バージョン: Laravel 12・PHP 8.4
FQCN / コマンド: php artisan migrate:status
関連API: migrate, migrate:rollback, migrate:refresh, migrate:install
変更履歴: Laravel 12 以降は仕様変更なし(古いバージョンと同一)


TL;DR

  • 何に使うか: データベースマイグレーションの適用状況を一覧表示
  • 最低限の使い方: php artisan migrate:status
  • 注意点
  • DB 接続設定が正しくないとエラー
  • マイグレーションテーブルが無いと「Unknown column」エラー
  • 環境変数が異なると実際の状態を確認できない

概要

migrate:statusdatabase/migrations にあるマイグレーションファイルごとに「適用済みか否か」を示すテーブルを標準出力します。開発ブランチ間で差分を確認したり、デプロイ前にマイグレーションが漏れていないかチェックする際に重宝します。


構文 / シグネチャ

php artisan migrate:status

引数

引数 必須 既定値 説明
なし このコマンドはオプションを受け取りません。

戻り値

  • ターミナルに出力されるテーブル
  | Migration                                 | Batch |
  |-------------------------------------------|-------|
  | 2023_07_15_123456_create_orders_table     | 5     |
  | 2023_07_15_123457_create_payments_table   | 6     |
  | 2023_07_16_000000_add_status_to_users     | 7     |

例外 / 副作用

例外 影響 対応
Illuminate\Database\QueryException DB 接続失敗時に投げられます config/database.php を確認、.env を正しく設定
なし 何も生成・削除しません migrations テーブルのみ参照

使用例

最小例

$ php artisan migrate:status

実務例

# チームと同期後に状態を確認
$ git pull origin develop
$ php artisan migrate:status
# 出力例
| Migration                                 | Batch |
|-------------------------------------------|-------|
| 2023_07_15_123456_create_orders_table     | 5     |
| 2023_07_15_123457_create_payments_table   | 6     |
| 2023_07_16_000000_add_status_to_users     | 7     |

追加確認例

# 「down」状態のマイグレーションだけをリストアップ
$ php artisan migrate:status | grep 'down'

よくある落とし穴・注意

症状 原因 対処
Could not find driver PDO ドライバ未インストール docker-php-ext-install pdo_mysql 等でインストール
Unknown column 'migration' migrations テーブルが存在しない php artisan migrate:install で作成
Command "migrate:status" is not defined. Artisan が読み込まれていない composer dump-autoload で再読み込み
本番環境と混同 .env が異なる 本番用 .env をロードして実行

代替・関連APIとの比較

手段 特徴 いつ選ぶか
php artisan migrate:status テーブル形式で直感的 全マイグレーションの状態を一目で確認したい
DB::table('migrations')->get() カスタムクエリで柔軟 追加情報(実行時刻など)が必要
php artisan migrate:show (非公式) 実際の SQL を表示 実行前に SQL を確認したい

テスト例(Pest)

use Illuminate\Support\Facades\Artisan;

it('displays migration status', function () {
    // まずマイグレーションを適用
    Artisan::call('migrate', ['--force' => true]);

    $output = Artisan::output();
    expect($output)->toContain('Migration');
    expect($output)->toContain('Batch');
});

トラブルシューティング

エラー 原因 解決策
Could not find driver PHP に PDO ドライバが無い php -m | grep pdo_mysql で確認し、必要に応じてインストール
Unknown column 'migration' in 'field list' migrations テーブルが作成されていない php artisan migrate:install でテーブルを作る
ErrorException: Call to undefined method Artisan コマンドが認識されない composer dump-autoload 後、サーバー再起動
出力が空 マイグレーションが存在しないか、接続が失敗している php artisan migrate:install でテーブル作成、.env の設定確認

参考リンク


レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする