Laravelのバージョン
php artisan --version
Laravel Framework 9.17.0
"kitloong/laravel-migrations-generator"をインストール
composer require "kitloong/laravel-migrations-generator"
migrate:generate
を実行
php artisan migrate:generate
マイグレーションファイルが生成された
テスト用DBにマイグレーションを実行すると以下のエラーが発生
php artisan migrate --env=testing
Fatal error: Cannot declare class CreatePersonalAccessTokensTable, because the name is already in use in /opt/database/migrations/2022_07_03_085626_create_personal_access_tokens_table.php on line 7
In 2022_07_03_085626_create_personal_access_tokens_table.php line 7:
Cannot declare class CreatePersonalAccessTokensTable, because the name is already in use
sancumのライブラリに同じクラス名が使われていたので、自前のマイグレーションファイルに含まれるとクラス名がかぶってエラーになる様子
vendor/laravel/sanctum/database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
migrate:generate
で生成された 2022_07_03_085626_create_personal_access_tokens_table.php
を削除してから再度実行
今度は正常に実行された
php artisan migrate --env=testing
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (270.76ms)
・・・
Migrating: 2022_07_03_085626_create_failed_jobs_table
Migrated: 2022_07_03_085626_create_failed_jobs_table (164.55ms)
Migrating: 2022_07_03_085626_create_password_resets_table
Migrated: 2022_07_03_085626_create_password_resets_table (161.97ms)
Migrating: 2022_07_03_085626_create_users_table
Migrated: 2022_07_03_085626_create_users_table (110.53ms)
Migrating: 2022_07_03_085627_add_foreign_keys_to_article_category_table
Migrated: 2022_07_03_085627_add_foreign_keys_to_article_category_table (386.56ms)
migrate:generate
で生成された 2022_07_03_085626_create_personal_access_tokens_table.php
を削除していたものの、personal_access_tokens
のテーブル自体は作成されていた。
migrations テーブルを見るとsancumに含まれていたファイル名で実行されている形跡がある
試しに vendor以下のマイグレーションファイルを削除するとpersonal_access_tokens
テーブルが作成されなかった。
おそらくmigrate実行時にvendor以下のライブラリ等に含まれるマイグレーションファイルも読み込んで実行してくれるものと思われる