laravel マイグレーションするとpersonal_access_tokens_tableが作られる(Sanctum)
2019_12_14_000001_create_personal_access_tokens_tableってのは常に入るらしい
作成日:2024-03-08, 更新日:2024-03-08
メモ
laravelをインストしたとき「database/migrations/xxx」がいくつか用意されている
auth認証しないから、あってもなくても良いんだけど…確認するためにファイルたちをマルっと削除
自作のマイグレーションファイルだけ追加して「$ php artisan migrate」を実行
すると…「2019_12_14_000001_create_personal_access_tokens_table」というのが勝手に実行される
「database/migrations」の下にはファイルは無いけどテーブルは作られる…
調べるとlaravel8.6から「Laravel Sanctum」ってのが標準搭載
これが勝手に「2019_12_14_000001_create_personal_access_tokens_table」を実行する原因…だそうだ
マイグレーションとマイグレート
似たような単語…
「マイグレーションを実行する…ということをマイグレート」という感じっぽい
- マイグレーション: データベースの変更を定義
- マイグレート: 定義に従ってデータベースに変更を適用するプロセス
対策
- 放置。あってもなくても気にしないなら放置でOK
- 「$ php artisan migrate」を使わない。DBに直接SQLを流してテーブルを作成するなら気にしなくていい
- 「Laravel Sanctum」を削除
- 「Laravel Sanctum」のマイグレートを無効化
「Laravel Sanctum」を削除
余計なものは削除しておけば良い…ってのが通じる場合
$ composer remove laravel/sanctum
「Laravel Sanctum」のマイグレートを無効化
- Laravel SanctumのAPI認証を使わない
- 今は、いらないけど今後どうなるか分かんない
…ってなら「app/Providers/AppServiceProvider.php」にignore追加
→API認証を使うときに設定…とか面倒なので使わないテーブルが一つぐらいあっても問題ないと思うから…無効化しなくて良いんじゃないかなぁ…
// 省略 class AppServiceProvider extends ServiceProvider { public function register() { Sanctum::ignoreMigrations(); } // 省略 }
Laravel Sanctum
「Laravel 8.x Laravel Sanctum」を見ると「SPA(シングルページアプリケーション)、モバイルアプリケーション、およびシンプルなトークンベースのAPIに軽い認証システムを提供」とある…よくわからん
さらに調べると…API認証とSPA認証ってのを提供してくれているらしい
- API認証: APIトークン(BearerToken)を使う認証
- SPA認証: Laravelのセッション管理を使う認証
詳しくは「【Laravel】SanctumでAPIトークン認証の使い方とSPA認証との比較」にて確認