18.06.00.060 will fail if custom Classification sources were created.
In that case we should use the 'generic' split rule.
Test plan:
% git checkout -b bug_22395_pre
3a0cba67f1387595f570ab9d9efdeabc856345b4
Reset the DB
Go to Home › Administration › Classification sources
Create a custom "Classification filing rules"
Create a custom "Classification sources" using this filing rules
% git checkout master
% perl installer/data/mysql/updatedatabase.pl
=> Without this patch you will get:
DBD::mysql::db do failed: Cannot add or update a child row: a foreign key constraint fails (`koha_kohadev`.`#sql-33a_67`, CONSTRAINT `class_source_ibfk_2` FOREIGN KEY (`class_split_rule`) REFERENCES `class_split
_rules` (`class_split_rule`)) [for Statement "
ALTER TABLE class_sources
ADD CONSTRAINT class_source_ibfk_2 FOREIGN KEY (class_split_rule)
REFERENCES class_split_rules (class_split_rule)
"] at installer/data/mysql/updatedatabase.pl line 17104.
=> With this patch applied the FK will be created successfully
class_sources.class_split_rule will be set to "generic" for these custom values.
Signed-off-by: Oliver Behnke <oliver.behnke@aei.mpg.de>
Signed-off-by: Josef Moravec <josef.moravec@gmail.com>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
(cherry picked from commit
29bc2b583264a62c29a0f39dd79a5b3a64721ae6)
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
ADD COLUMN class_split_rule varchar(10) NOT NULL default ''
AFTER class_sort_rule
|);
+
$dbh->do(q|
UPDATE class_sources
SET class_split_rule = class_sort_rule
|);
$dbh->do(q|
+ UPDATE class_sources
+ SET class_split_rule = 'generic'
+ WHERE class_split_rule NOT IN('dewey', 'generic', 'lcc')
+ |);
+
+ $dbh->do(q|
INSERT INTO class_split_rules(class_split_rule, description, split_routine)
VALUES
('dewey', 'Default sorting rules for DDC', 'Dewey'),