【Laravel】データーベースの特定のテーブルだけ修正、作り直したら外部キー制約でシーダーエラー

特定のテーブルだけマイグレート

テーブルの作り直し作業が発生したため、
マイグレーションファイルを修正後、マイグレートのやり直し。
マイグレーションの確認
$ php artisan migrate:status
+------+-------------------------------------------------------+-------+
| Ran? | Migration                                             | Batch |
+------+-------------------------------------------------------+-------+
| Yes  | 2019_12_14_000001_create_personal_access_tokens_table | 1     |
| Yes  | 2022_04_03_051357_create_areas_table                  | 1     |
| Yes  | 2022_04_03_051532_create_expeditions_table            | 1     |
| Yes  | 2022_04_03_071904_create_expedition_trigers           | 1     |
+------+-------------------------------------------------------+-------+
マイグレーションファイルの実行
$ php artisan migrate:refresh  --step=1 --path=/database/migrations/2022_04_03_071904_create_expedition_trigers.php
Rolling back: 2022_04_03_071904_create_expedition_trigers
Rolled back:  2022_04_03_071904_create_expedition_trigers (76.64ms)
Migrating: 2022_04_03_071904_create_expedition_trigers
Migrated:  2022_04_03_071904_create_expedition_trigers (211.42ms)

特定のテーブルだけシーダー

しかし、この後seedした結果
シーダーの実行
$ php artisan db:seed --class=ExpeditionTrigerSeeder
   Illuminate\Database\QueryException

  SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`kancolle`.`expedition_trigers`, CONSTRAINT `expedition_trigers_parent_exp_id_foreign` FOREIGN KEY (`parent_exp_id`) REFERENCES `expeditions` (`exp_id`)) (SQL: insert into `expedition_trigers` (`exp_id`, `parent_exp_id`) values (8, A2), (A1, A3), (A2, A3), (24, A4), (A4, A5), (B3, A6), (A5, A6), (B4, A7))

  at vendor/laravel/framework/src/Illuminate/Database/Connection.php:716
  ・
  ・
と出てしまう。 MySQLで作成したテーブルのSQLを見てみると。
> SHOW CREATE TABLE expedition_trigers;
+--------------------+-----
| Table              | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
+--------------------+------------------
| expedition_trigers | CREATE TABLE `expedition_trigers` (
  `expedition_triger_id` int unsigned NOT NULL AUTO_INCREMENT,
  `parent_exp_id` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
  `exp_id` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL,
  `updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`expedition_triger_id`),
  KEY `expedition_trigers_parent_exp_id_foreign` (`parent_exp_id`),
  KEY `expedition_trigers_exp_id_foreign` (`exp_id`),
  CONSTRAINT `expedition_trigers_exp_id_foreign` FOREIGN KEY (`exp_id`) REFERENCES `expeditions` (`exp_id`),
  CONSTRAINT `expedition_trigers_parent_exp_id_foreign` FOREIGN KEY (`parent_exp_id`) REFERENCES `expeditions` (`exp_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci |
修正時に消した外部キーが追加されてしまっている。
既存のマイグレーションファイルを削除して作成し直す事で解決。
深くは考えずそういうものなのだという事で、、
テーブルはMYSQLで手動で削除。
マイグレーションファイルの作成
$ php artisan make:migration expedition_trigers
Created Migration: 2022_04_08_211941_expedition_trigers
マイグレーションファイルの実行
$ php artisan migrate:refresh --step=1 --path=/database/migrations/2022_04_08_211941_expedition_trigers.php
Migration not found: 2022_04_03_071904_create_expedition_trigers
Migrating: 2022_04_08_211941_expedition_trigers
Migrated:  2022_04_08_211941_expedition_trigers (31.00ms)
シーダーの実行
$ php artisan db:seed --class=ExpeditionTrigerSeeder
Database seeding completed successfully.