Laravel 8.6.0 以降、Laravel Sanctumがなぜか標準搭載
Laravel9にも laravel/sanctum
がプリインストールされています。
(なんでなん...?)
マイグレーションファイルを消してもテーブルが生成される
Laravelをインストールすると database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
ファイルがあります。
このファイルを消してマイグレーションを実行しても...
$ php artisan migrate
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (43.38ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (35.42ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (24.97ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (56.15ms)
とこのように personal_access_tokens
テーブルが生成されてしまいます。
実行されているのは下記のマイグレーションファイルです。
Sanctumが必要ない場合は...
Sanctumをアンインストールすればokです。
$ composer remove laravel/sanctum
Sanctumのマイグレーションを無効化する
SPA認証を使う場合は、 personal_access_tokens
は不要です。
そういった時はマイグレーションを無効化したいです。
サービスプロバイダに下記のようにコードを追加します。
app/Providers/AppServiceProvider.php
<?php declare(strict_types=1);
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Laravel\Sanctum\Sanctum;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
Sanctum::ignoreMigrations();
}
}
Sanctumのマイグレーションが実行されないことを確認します。
$ php artisan migrate:fresh
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (40.94ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (31.85ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (35.03ms)
okですb