From dced08b111130defe8baa8344440497fbe4d7c5a Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 4 Aug 2015 10:00:51 +0100 Subject: [PATCH] Bug 14205: Deleting an Item/Record does not remove link to course reserve A constraint is missing on the course_reserves.ci_id field. This patch adds it and removes orphan rows. Test plan: 0/ Don't apply the patch 1/ Login to Staff Site. 2/ Go to Course Reserves 3/ Create Course 4/ Add Reserve 5/ Go to item added (delete item/record) 6/ Refresh Course (see no items attached) 7/ Delete Course 8/ See course still listed in the courses (Not deleted) 9/ Apply the patch and execute the updatedatabase entry. 10/ Delete the Course Note that the course has correctly been removed. NOTE: Make sure to set the UseCourseReserves system preference to test. Tested before (problem existed) and after (problem solved) update. Dropped DB, web installed, and put in dummy data and retested. Problem solved. Signed-off-by: Mark Tompsett --- .../mysql/atomicupdate/bug_14205-add_fk_course_reserves_ci_id.sql | 2 ++ installer/data/mysql/kohastructure.sql | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 installer/data/mysql/atomicupdate/bug_14205-add_fk_course_reserves_ci_id.sql diff --git a/installer/data/mysql/atomicupdate/bug_14205-add_fk_course_reserves_ci_id.sql b/installer/data/mysql/atomicupdate/bug_14205-add_fk_course_reserves_ci_id.sql new file mode 100644 index 0000000..1a68545 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_14205-add_fk_course_reserves_ci_id.sql @@ -0,0 +1,2 @@ +DELETE cr.* FROM course_reserves AS cr LEFT JOIN course_items USING(ci_id) WHERE course_items.ci_id IS NULL; +ALTER TABLE course_reserves add CONSTRAINT course_reserves_ibfk_2 FOREIGN KEY (ci_id) REFERENCES course_items (ci_id) ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 2409bc2..aaff203 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -623,7 +623,9 @@ CREATE TABLE `course_reserves` ( -- Constraints for table `course_reserves` -- ALTER TABLE `course_reserves` - ADD CONSTRAINT `course_reserves_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `courses` (`course_id`); + ADD CONSTRAINT `course_reserves_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `courses` (`course_id`), + ADD CONSTRAINT `course_reserves_ibfk_2` FOREIGN KEY (`ci_id`) REFERENCES `course_items` (`ci_id`) ON DELETE CASCADE ON UPDATE CASCADE; + -- -- Table structure for table `branch_borrower_circ_rules` -- 2.1.4