<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. */ public function up(): void { Schema::table('supplier_user', function (Blueprint $table) { $table->string('supplier_ref')->nullable(); $table->dropUnique(['id','site_id']); $table->dropUnique(['id','supplier_id']); $table->unique(['user_id','supplier_ref']); }); DB::update('UPDATE supplier_user set supplier_ref=id'); DB::update('ALTER TABLE supplier_user ALTER COLUMN supplier_ref SET NOT NULL'); Schema::table('supplier_user', function (Blueprint $table) { $table->dropColumn('id'); }); } /** * Reverse the migrations. */ public function down(): void { Schema::table('supplier_user', function (Blueprint $table) { $table->string('id')->nullable(); $table->unique(['id','site_id']); $table->unique(['id','supplier_id']); $table->dropUnique(['user_id','supplier_ref']); }); DB::update('UPDATE supplier_user set id=supplier_ref'); Schema::table('supplier_user', function (Blueprint $table) { $table->dropColumn('supplier_ref'); }); } };