fix(database): update foreign key constraints to cascade on delete

Update foreign key constraints on accounts and transmittals tables to cascade deletions, ensuring data integrity when referenced clients or branches are removed. The down migrations revert to the previous behavior.
This commit is contained in:
Jp
2026-02-11 05:24:44 +08:00
parent 0131193b8d
commit 76a52d7e82
2 changed files with 84 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
<?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('accounts', function (Blueprint $table) {
$table->dropForeign(['client_id']);
$table->foreign('client_id')
->references('id')
->on('clients')
->cascadeOnDelete();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('accounts', function (Blueprint $table) {
$table->dropForeign(['client_id']);
$table->foreign('client_id')
->references('id')
->on('clients')
->nullOnDelete(); // Since it is nullable
});
}
};

View File

@@ -0,0 +1,48 @@
<?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('transmittals', function (Blueprint $table) {
$table->dropForeign(['client_id']);
$table->dropForeign(['branch_id']);
$table->foreign('client_id')
->references('id')
->on('clients')
->cascadeOnDelete();
$table->foreign('branch_id')
->references('id')
->on('branches')
->cascadeOnDelete();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('transmittals', function (Blueprint $table) {
$table->dropForeign(['client_id']);
$table->dropForeign(['branch_id']);
$table->foreign('client_id')
->references('id')
->on('clients');
$table->foreign('branch_id')
->references('id')
->on('branches');
});
}
};