From d80ee0713ec3b7b480dc96ee6a66682583728d64 Mon Sep 17 00:00:00 2001 From: William Allen <16820599+williamjallen@users.noreply.github.com> Date: Mon, 23 Sep 2024 09:50:14 -0400 Subject: [PATCH] Add foreign key constraints to dynamic analysis tables --- ...3_133018_dynamic_analysis_foreign_keys.php | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 database/migrations/2024_09_23_133018_dynamic_analysis_foreign_keys.php diff --git a/database/migrations/2024_09_23_133018_dynamic_analysis_foreign_keys.php b/database/migrations/2024_09_23_133018_dynamic_analysis_foreign_keys.php new file mode 100644 index 000000000..38d9cb643 --- /dev/null +++ b/database/migrations/2024_09_23_133018_dynamic_analysis_foreign_keys.php @@ -0,0 +1,39 @@ +dynamicanalysis(id)..."; + $num_deleted = DB::delete("DELETE FROM dynamicanalysisdefect WHERE dynamicanalysisid NOT IN (SELECT id FROM dynamicanalysis)"); + echo $num_deleted . ' invalid rows deleted' . PHP_EOL; + Schema::table('dynamicanalysisdefect', function (Blueprint $table) { + $table->foreign('dynamicanalysisid')->references('id')->on('dynamicanalysis')->cascadeOnDelete(); + $table->index(['value']); + $table->index(['type']); + $table->unique(['dynamicanalysisid', 'value', 'type']); + $table->unique(['dynamicanalysisid', 'type', 'value']); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('dynamicanalysisdefect', function (Blueprint $table) { + $table->dropForeign(['dynamicanalysisid']); + $table->dropIndex(['value']); + $table->dropIndex(['type']); + $table->dropUnique(['dynamicanalysisid', 'value', 'type']); + $table->dropUnique(['dynamicanalysisid', 'type', 'value']); + }); + } +};