From dec1ed1e4593cf086465051483fab5bde04548d0 Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Sun, 11 Apr 2021 19:39:46 -0500 Subject: [PATCH] Split port_groups migration to prevent issues (#12732) * Split port_groups migration to prevent issues * split out to individual tables * fix class names * Fix the hasTable check don't need separate foreign key migrations since they are both on the same table. --- ...14_091314_create_port_group_port_table.php | 33 +++++++++++++ ..._12_14_091314_create_port_groups_table.php | 8 ---- ..._foreign_keys_to_port_group_port_table.php | 48 +++++++++++++++++++ 3 files changed, 81 insertions(+), 8 deletions(-) create mode 100644 database/migrations/2020_12_14_091314_create_port_group_port_table.php create mode 100644 database/migrations/2021_04_08_151101_add_foreign_keys_to_port_group_port_table.php diff --git a/database/migrations/2020_12_14_091314_create_port_group_port_table.php b/database/migrations/2020_12_14_091314_create_port_group_port_table.php new file mode 100644 index 0000000000..19ed0686e4 --- /dev/null +++ b/database/migrations/2020_12_14_091314_create_port_group_port_table.php @@ -0,0 +1,33 @@ +unsignedInteger('port_group_id')->unsigned()->index(); + $table->unsignedInteger('port_id')->unsigned()->index(); + $table->primary(['port_group_id', 'port_id']); + }); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::drop('port_group_port'); + } +} diff --git a/database/migrations/2020_12_14_091314_create_port_groups_table.php b/database/migrations/2020_12_14_091314_create_port_groups_table.php index 7819906469..f6ae3bbf93 100644 --- a/database/migrations/2020_12_14_091314_create_port_groups_table.php +++ b/database/migrations/2020_12_14_091314_create_port_groups_table.php @@ -17,13 +17,6 @@ class CreatePortGroupsTable extends Migration $table->string('name')->unique(); $table->string('desc')->nullable(); }); - Schema::create('port_group_port', function (Blueprint $table) { - $table->unsignedInteger('port_group_id')->unsigned()->index(); - $table->unsignedInteger('port_id')->unsigned()->index(); - $table->primary(['port_group_id', 'port_id']); - $table->foreign('port_group_id')->references('id')->on('port_groups')->onDelete('CASCADE'); - $table->foreign('port_id')->references('port_id')->on('ports')->onDelete('CASCADE'); - }); } /** @@ -33,7 +26,6 @@ class CreatePortGroupsTable extends Migration */ public function down() { - Schema::drop('port_group_port'); Schema::drop('port_groups'); } } diff --git a/database/migrations/2021_04_08_151101_add_foreign_keys_to_port_group_port_table.php b/database/migrations/2021_04_08_151101_add_foreign_keys_to_port_group_port_table.php new file mode 100644 index 0000000000..fab896c08b --- /dev/null +++ b/database/migrations/2021_04_08_151101_add_foreign_keys_to_port_group_port_table.php @@ -0,0 +1,48 @@ +getName(); + }, Schema::getConnection()->getDoctrineSchemaManager() + ->listTableForeignKeys('port_group_port')); + + if (! in_array('port_group_port_port_group_id_foreign', $constraint_names)) { + $table->foreign('port_group_id')->references('id')->on('port_groups')->onDelete('CASCADE'); + } + + if (! in_array('port_group_port_port_id_foreign', $constraint_names)) { + $table->foreign('port_id')->references('port_id')->on('ports')->onDelete('CASCADE'); + } + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + if (\LibreNMS\DB\Eloquent::getDriver() !== 'sqlite') { + Schema::table('port_group_port', function (Blueprint $table) { + $table->dropForeign('port_group_port_port_group_id_foreign'); + $table->dropForeign('port_group_port_port_id_foreign'); + }); + } + } +}