diff --git a/Database/Migrations/2024_07_10_162728_drop_unicity_from_customer_emails.php b/Database/Migrations/2024_07_10_162728_relax_unicity_of_customer_emails.php similarity index 64% rename from Database/Migrations/2024_07_10_162728_drop_unicity_from_customer_emails.php rename to Database/Migrations/2024_07_10_162728_relax_unicity_of_customer_emails.php index 329fa11..1bbfbb1 100644 --- a/Database/Migrations/2024_07_10_162728_drop_unicity_from_customer_emails.php +++ b/Database/Migrations/2024_07_10_162728_relax_unicity_of_customer_emails.php @@ -8,7 +8,7 @@ use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; -class DropUnicityFromCustomerEmails extends Migration { +class RelaxUnicityOfCustomerEmails extends Migration { /** * Run the migrations. * @@ -16,6 +16,9 @@ class DropUnicityFromCustomerEmails extends Migration { */ public function up() { Schema::table('emails', function (Blueprint $table) { + // Ensure a same e-mail can only be set once for a given Customer. + $table->unique(['email', 'customer_id']); + // Allow a same e-mail to be set to multiple Customers. $table->dropUnique(['email']); }); } @@ -28,7 +31,10 @@ class DropUnicityFromCustomerEmails extends Migration { public function down() { Schema::table('emails', function (Blueprint $table) { // TODO: Remove all duplicated e-mails. + // Restore the unicity of e-mails. $table->unique('email'); + // Drop the redundant unicity constraint. + $table->dropUnique(['email', 'customer_id']); }); } }