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:
@@ -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
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -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');
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user