Laravelでマイグレーションしたあとに、特定のテーブルのみマイグレーションする方法について。
現在のマイグレーションのステータスを確認します。
php artisan migrate:status
ステータスが表示されます。
+------+-------------------------------------------------------+-------+
| Ran? | Migration | Batch |
+------+-------------------------------------------------------+-------+
| Yes | 2014_10_12_000000_create_users_table | 1 |
| Yes | 2014_10_12_100000_create_password_resets_table | 1 |
| Yes | 2019_08_19_000000_create_failed_jobs_table | 1 |
| Yes | 2019_12_14_000001_create_personal_access_tokens_table | 1 |
| Yes | 2021_08_28_012148_create_people_table | 1 |
| Yes | 2021_08_28_061818_create_boards_table | 1 |
| Yes | 2021_08_29_000550_create_restdata_table | 1 |
| Yes | 2021_08_29_013508_create_sessions_table | 1 |
+------+-------------------------------------------------------+-------+
「create_boards_table」のみ、マイグレーションを実行したいとします。migrateコマンドに下記のオプションを追加します。
php artisan migrate:refresh --path=/database/migrations/2021_08_28_061818_create_boards_table.php
下記のように実行されます。
Rolling back: 2021_08_28_061818_create_boards_table
Rolled back: 2021_08_28_061818_create_boards_table (4.33ms)
Migration not found: 2021_08_29_013508_create_sessions_table
Migration not found: 2021_08_29_000550_create_restdata_table
Migration not found: 2021_08_28_012148_create_people_table
Migration not found: 2019_12_14_000001_create_personal_access_tokens_table
Migration not found: 2019_08_19_000000_create_failed_jobs_table
Migration not found: 2014_10_12_100000_create_password_resets_table
Migration not found: 2014_10_12_000000_create_users_table
Migrating: 2021_08_28_061818_create_boards_table
Migrated: 2021_08_28_061818_create_boards_table (2.20ms)
マイグレーションの対象のファイルは下記のように指定するようです。
php artisan migrate:refresh --path=[プロジェクトのディレクトリから見たマイグレーションファイルの絶対パス]