From 76a52d7e82a6a2898ab5c7a5b90683a02c1efc6f Mon Sep 17 00:00:00 2001 From: Jp Date: Wed, 11 Feb 2026 05:24:44 +0800 Subject: [PATCH] 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. --- ...te_client_id_foreign_on_accounts_table.php | 36 ++++++++++++++ ...ate_foreign_keys_on_transmittals_table.php | 48 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 database/migrations/2026_02_10_212218_update_client_id_foreign_on_accounts_table.php create mode 100644 database/migrations/2026_02_10_212331_update_foreign_keys_on_transmittals_table.php diff --git a/database/migrations/2026_02_10_212218_update_client_id_foreign_on_accounts_table.php b/database/migrations/2026_02_10_212218_update_client_id_foreign_on_accounts_table.php new file mode 100644 index 0000000..540da83 --- /dev/null +++ b/database/migrations/2026_02_10_212218_update_client_id_foreign_on_accounts_table.php @@ -0,0 +1,36 @@ +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 + }); + } +}; diff --git a/database/migrations/2026_02_10_212331_update_foreign_keys_on_transmittals_table.php b/database/migrations/2026_02_10_212331_update_foreign_keys_on_transmittals_table.php new file mode 100644 index 0000000..abac2dd --- /dev/null +++ b/database/migrations/2026_02_10_212331_update_foreign_keys_on_transmittals_table.php @@ -0,0 +1,48 @@ +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'); + }); + } +};