From ed57f915f8189af9044d639c90cebccfc01a0635 Mon Sep 17 00:00:00 2001 From: Andreas Kristiansen <6977712+AndreasK79@users.noreply.github.com> Date: Tue, 12 Aug 2025 19:22:16 +0200 Subject: [PATCH] Add migration for cascade delete --- application/config/migration.php | 2 +- .../migrations/252_add_oqrs_cascade.php | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 application/migrations/252_add_oqrs_cascade.php diff --git a/application/config/migration.php b/application/config/migration.php index b334c6b80..bd90bbc19 100644 --- a/application/config/migration.php +++ b/application/config/migration.php @@ -22,7 +22,7 @@ $config['migration_enabled'] = TRUE; | */ -$config['migration_version'] = 251; +$config['migration_version'] = 252; /* |-------------------------------------------------------------------------- diff --git a/application/migrations/252_add_oqrs_cascade.php b/application/migrations/252_add_oqrs_cascade.php new file mode 100644 index 000000000..f0823119e --- /dev/null +++ b/application/migrations/252_add_oqrs_cascade.php @@ -0,0 +1,25 @@ +dbtry("ALTER TABLE oqrs MODIFY COLUMN qsoid BIGINT(20) UNSIGNED;"); + $this->dbtry("ALTER TABLE oqrs ADD UNIQUE (qsoid)"); + $this->dbtry("ALTER TABLE oqrs ADD CONSTRAINT oqrs_logbook_fk FOREIGN KEY (qsoid) REFERENCES " . $this->config->item('table_name') . " (COL_PRIMARY_KEY) ON DELETE CASCADE ON UPDATE RESTRICT;"); + } + + public function down(){ + $this->dbtry("ALTER TABLE oqrs MODIFY COLUMN qsoid INT;"); + $this->dbtry("ALTER TABLE oqrs DROP UNIQUE (qsoid);"); + $this->dbtry("ALTER TABLE oqrs DROP FOREIGN KEY oqrs_logbook_fk;"); + } + function dbtry($what) { + try { + $this->db->query($what); + } catch (Exception $e) { + log_message("error", "Something gone wrong while altering FKs: ".$e." // Executing: ".$this->db->last_query()); + } + } +}