From 527a7fb89cff287dfb80326863f1a980d76137e4 Mon Sep 17 00:00:00 2001 From: Leon Morival Date: Fri, 10 Apr 2026 12:04:53 +0200 Subject: [PATCH] feat: user ids to ulids --- app/Models/User.php | 3 ++- database/migrations/0001_01_01_000000_create_users_table.php | 4 ++-- .../2026_03_09_120219_create_personal_access_tokens_table.php | 2 +- database/migrations/2026_03_09_120925_create_todo_table.php | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/Models/User.php b/app/Models/User.php index acb483e..b247ab4 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -5,6 +5,7 @@ namespace App\Models; // use Illuminate\Contracts\Auth\MustVerifyEmail; use Filament\Models\Contracts\FilamentUser; use Filament\Panel; +use Illuminate\Database\Eloquent\Concerns\HasUlids; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Foundation\Auth\User as Authenticatable; @@ -14,7 +15,7 @@ use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable implements FilamentUser { /** @use HasFactory<\Database\Factories\UserFactory> */ - use HasFactory, Notifiable, HasApiTokens; + use HasFactory, Notifiable, HasApiTokens, HasUlids; /** * The attributes that are mass assignable. diff --git a/database/migrations/0001_01_01_000000_create_users_table.php b/database/migrations/0001_01_01_000000_create_users_table.php index 05fb5d9..473f300 100644 --- a/database/migrations/0001_01_01_000000_create_users_table.php +++ b/database/migrations/0001_01_01_000000_create_users_table.php @@ -12,7 +12,7 @@ return new class extends Migration public function up(): void { Schema::create('users', function (Blueprint $table) { - $table->id(); + $table->ulid('id')->primary(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); @@ -29,7 +29,7 @@ return new class extends Migration Schema::create('sessions', function (Blueprint $table) { $table->string('id')->primary(); - $table->foreignId('user_id')->nullable()->index(); + $table->foreignUlid('user_id')->nullable()->index(); $table->string('ip_address', 45)->nullable(); $table->text('user_agent')->nullable(); $table->longText('payload'); diff --git a/database/migrations/2026_03_09_120219_create_personal_access_tokens_table.php b/database/migrations/2026_03_09_120219_create_personal_access_tokens_table.php index 40ff706..c31f2ce 100644 --- a/database/migrations/2026_03_09_120219_create_personal_access_tokens_table.php +++ b/database/migrations/2026_03_09_120219_create_personal_access_tokens_table.php @@ -13,7 +13,7 @@ return new class extends Migration { Schema::create('personal_access_tokens', function (Blueprint $table) { $table->id(); - $table->morphs('tokenable'); + $table->ulidMorphs('tokenable'); $table->text('name'); $table->string('token', 64)->unique(); $table->text('abilities')->nullable(); diff --git a/database/migrations/2026_03_09_120925_create_todo_table.php b/database/migrations/2026_03_09_120925_create_todo_table.php index ff90956..4cb45cf 100644 --- a/database/migrations/2026_03_09_120925_create_todo_table.php +++ b/database/migrations/2026_03_09_120925_create_todo_table.php @@ -11,7 +11,7 @@ return new class extends Migration { $table->id(); $table->string('name'); $table->boolean('is_done')->default(false); - $table->foreignId('user_id')->constrained('users'); + $table->foreignUlid('user_id')->constrained('users'); $table->timestamps(); }); }