@@ -, +, @@ default to zero --- Koha/Schema/Result/Deleteditem.pm | 8 ++++++-- Koha/Schema/Result/Item.pm | 8 ++++++-- .../bug_23081-change-default-of-issues-field.perl | 15 +++++++++++++++ installer/data/mysql/kohastructure.sql | 4 ++-- 4 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_23081-change-default-of-issues-field.perl --- a/Koha/Schema/Result/Deleteditem.pm +++ a/Koha/Schema/Result/Deleteditem.pm @@ -156,7 +156,8 @@ __PACKAGE__->table("deleteditems"); =head2 issues data_type: 'smallint' - is_nullable: 1 + is_nullable: 0 + default_value: 0 =head2 renewals @@ -341,7 +342,10 @@ __PACKAGE__->add_columns( "coded_location_qualifier", { data_type => "varchar", is_nullable => 1, size => 10 }, "issues", - { data_type => "smallint", is_nullable => 1 }, + { data_type => "smallint", + is_nullable => 0, + default_value => 0, + }, "renewals", { data_type => "smallint", is_nullable => 1 }, "reserves", --- a/Koha/Schema/Result/Item.pm +++ a/Koha/Schema/Result/Item.pm @@ -159,7 +159,8 @@ __PACKAGE__->table("items"); =head2 issues data_type: 'smallint' - is_nullable: 1 + is_nullable: 0 + default_value: 0 =head2 renewals @@ -355,7 +356,10 @@ __PACKAGE__->add_columns( "coded_location_qualifier", { data_type => "varchar", is_nullable => 1, size => 10 }, "issues", - { data_type => "smallint", is_nullable => 1 }, + { data_type => "smallint", + is_nullable => 0, + default_value => 0, + }, "renewals", { data_type => "smallint", is_nullable => 1 }, "reserves", --- a/installer/data/mysql/atomicupdate/bug_23081-change-default-of-issues-field.perl +++ a/installer/data/mysql/atomicupdate/bug_23081-change-default-of-issues-field.perl @@ -0,0 +1,15 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + # you can use $dbh here like: + $dbh->do( "UPDATE items set issues=0 where issues is null" ); + $dbh->do( "UPDATE deleteditems set issues=0 where issues is null" ); + $dbh->do( "ALTER TABLE items ALTER issues set default 0" ); + $dbh->do( "ALTER TABLE deleteditems ALTER issues set default 0" ); + # or perform some test and warn + # if( !column_exists( 'biblio', 'biblionumber' ) ) { + # warn "There is something wrong"; + # } + + # Always end with this (adjust the bug info) + NewVersion( $DBversion, 23081, "Set default to 0 for items.issues"); +} --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -638,7 +638,7 @@ CREATE TABLE `deleteditems` ( `withdrawn_on` datetime DEFAULT NULL, -- the date and time an item was last marked as withdrawn, NULL if not withdrawn `itemcallnumber` varchar(255) default NULL, -- call number for this item (MARC21 952$o) `coded_location_qualifier` varchar(10) default NULL, -- coded location qualifier(MARC21 952$f) - `issues` smallint(6) default NULL, -- number of times this item has been checked out + `issues` smallint(6) default 0, -- number of times this item has been checked out `renewals` smallint(6) default NULL, -- number of times this item has been renewed `reserves` smallint(6) default NULL, -- number of times this item has been placed on hold/reserved `restricted` tinyint(1) default NULL, -- authorized value defining use restrictions for this item (MARC21 952$5) @@ -843,7 +843,7 @@ CREATE TABLE `items` ( -- holdings/item information `withdrawn_on` datetime DEFAULT NULL, -- the date and time an item was last marked as withdrawn, NULL if not withdrawn `itemcallnumber` varchar(255) default NULL, -- call number for this item (MARC21 952$o) `coded_location_qualifier` varchar(10) default NULL, -- coded location qualifier(MARC21 952$f) - `issues` smallint(6) default NULL, -- number of times this item has been checked out/issued + `issues` smallint(6) default 0, -- number of times this item has been checked out/issued `renewals` smallint(6) default NULL, -- number of times this item has been renewed `reserves` smallint(6) default NULL, -- number of times this item has been placed on hold/reserved `restricted` tinyint(1) default NULL, -- authorized value defining use restrictions for this item (MARC21 952$5) --