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認証との比較」にて確認