From 027bf2195f1d0f35a7db4469d9a9eaf0bc9ea725 Mon Sep 17 00:00:00 2001 From: Ollie Date: Sun, 20 Sep 2026 11:36:02 +0100 Subject: [PATCH] Update primary key column type for the `users` table Requires updating the `user_id` foreign key column in the `policy_acceptances` table. --- ...1_update_users_primary_key_column_type.php | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 database/migrations/2026_09_14_000001_update_users_primary_key_column_type.php diff --git a/database/migrations/2026_09_14_000001_update_users_primary_key_column_type.php b/database/migrations/2026_09_14_000001_update_users_primary_key_column_type.php new file mode 100644 index 00000000..01e483da --- /dev/null +++ b/database/migrations/2026_09_14_000001_update_users_primary_key_column_type.php @@ -0,0 +1,57 @@ +dropForeign(['user_id']); + }); + + // UPDATE PRIMARY KEY COLUMN TYPE + Schema::table('users', function (Blueprint $table) { + // `->id()` is an alias for `->bigIncrements('id')` + // https://laravel.com/framework/docs/11.x/migrations#column-method-id + $table->id()->change(); + }); + + // UPDATE FOREIGN KEY COLUMN TYPE AND RECREATE DROPPED CONSTRAINTS + Schema::table('policy_acceptances', function (Blueprint $table) { + $table->foreignId('user_id')->change() + ->constrained() + ->restrictOnUpdate() + ->restrictOnDelete(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void { + // DROP EXISTING FOREIGN KEY CONSTRAINTS + Schema::table('policy_acceptances', function (Blueprint $table) { + $table->dropForeign(['user_id']); + }); + + // REVERSE PRIMARY KEY COLUMN TYPE CHANGE + Schema::table('users', function (Blueprint $table) { + $table->increments('id')->change(); + }); + + // REVERSE FOREIGN KEY COLUMN TYPE CHANGE AND RECREATE DROPPED CONSTRAINTS + Schema::table('policy_acceptances', function (Blueprint $table) { + $table->unsignedInteger('user_id')->change(); + $table->foreign('user_id')->references('id')->on('users') + ->restrictOnUpdate() + ->restrictOnDelete(); + }); + } +};