From 35ea61a35244c609dd965ed97f039fe6760d7175 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Thu, 7 Apr 2022 12:51:42 +0000 Subject: [PATCH] Bug 30483: Make issues.borrowernumber and itemnumber NOT NULL Note: This change does NOT apply to old_issues, where constraints may result in nullifying these columns. Test plan: Run dbrev. Try checkout, checkin. Signed-off-by: Martin Renvoize --- installer/data/mysql/atomicupdate/bug_30483.pl | 12 ++++++++++++ installer/data/mysql/kohastructure.sql | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) create mode 100755 installer/data/mysql/atomicupdate/bug_30483.pl diff --git a/installer/data/mysql/atomicupdate/bug_30483.pl b/installer/data/mysql/atomicupdate/bug_30483.pl new file mode 100755 index 0000000000..53eeae9962 --- /dev/null +++ b/installer/data/mysql/atomicupdate/bug_30483.pl @@ -0,0 +1,12 @@ +use Modern::Perl; + +return { + bug_number => 30483, + description => "Make issues.borrowernumber and itemnumber NOT NULL", + up => sub { + my ($args) = @_; + my ($dbh, $out) = @$args{qw(dbh out)}; + my $sql = "ALTER TABLE issues MODIFY COLUMN borrowernumber int(11) NOT NULL COMMENT 'foreign key, linking this to the borrowers table for the patron this item was checked out to', MODIFY COLUMN itemnumber int(11) NOT NULL COMMENT 'foreign key, linking this to the items table for the item that was checked out'"; + $dbh->do($sql); + }, +}; diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 7eafe84413..883e8ae79c 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -3127,9 +3127,9 @@ DROP TABLE IF EXISTS `issues`; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `issues` ( `issue_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'primary key for issues table', - `borrowernumber` int(11) DEFAULT NULL COMMENT 'foreign key, linking this to the borrowers table for the patron this item was checked out to', + `borrowernumber` int(11) NOT NULL COMMENT 'foreign key, linking this to the borrowers table for the patron this item was checked out to', `issuer_id` int(11) DEFAULT NULL COMMENT 'foreign key, linking this to the borrowers table for the user who checked out this item', - `itemnumber` int(11) DEFAULT NULL COMMENT 'foreign key, linking this to the items table for the item that was checked out', + `itemnumber` int(11) NOT NULL COMMENT 'foreign key, linking this to the items table for the item that was checked out', `date_due` datetime DEFAULT NULL COMMENT 'datetime the item is due (yyyy-mm-dd hh:mm::ss)', `branchcode` varchar(10) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'foreign key, linking to the branches table for the location the item was checked out', `returndate` datetime DEFAULT NULL COMMENT 'date the item was returned, will be NULL until moved to old_issues', -- 2.20.1