5 description => "Resync DB structure for existing installations",
8 my ($dbh, $out) = @$args{qw(dbh out)};
10 if ( !primary_key_exists( 'language_script_mapping', 'language_subtag' )
11 and index_exists( 'language_script_mapping', 'language_subtag' ) ) {
14 ALTER TABLE language_script_mapping
15 DROP KEY `language_subtag`;
19 if ( !primary_key_exists( 'language_script_mapping', 'language_subtag' ) ) {
22 ALTER TABLE language_script_mapping
23 ADD PRIMARY KEY `language_subtag` (`language_subtag`);
26 say $out "Added missing primary key on language_script_mapping"
29 unless ( foreign_key_exists('tmp_holdsqueue', 'tmp_holdsqueue_ibfk_3') ) {
31 ALTER TABLE tmp_holdsqueue
32 ADD CONSTRAINT `tmp_holdsqueue_ibfk_3` FOREIGN KEY (`borrowernumber`)
33 REFERENCES `borrowers` (`borrowernumber`) ON DELETE CASCADE ON UPDATE CASCADE
36 say $out "Added missing foreign key on tmp_holdsqueue";
40 ALTER TABLE `account_offsets`
41 MODIFY COLUMN `type` enum( 'CREATE', 'APPLY', 'VOID', 'OVERDUE_INCREASE', 'OVERDUE_DECREASE' ) NOT NULL
43 say $out "Ensure NOT NULL on account_offsets.type";
46 ALTER TABLE `additional_contents`
47 MODIFY COLUMN `code` VARCHAR(100) NOT NULL
49 say $out "Ensure additional_contents.code is VARCHAR(100)";
52 ALTER TABLE `additional_contents`
53 MODIFY COLUMN `lang` VARCHAR(50) NOT NULL DEFAULT ''
55 say $out "Ensure additional_contents.lang is VARCHAR(50)";
58 ALTER TABLE search_marc_map MODIFY `marc_type` enum('marc21','unimarc') NOT NULL COMMENT 'what MARC type this map is for'
60 say $out "Ensure NOT NULL on search_marc_map.marc_type";
66 `cancellation_reason` enum(
68 'StockrotationAdvance',
69 'StockrotationRepatriation',
81 say $out "Ensure branchtransfers.cancellation_reason enum values are uppercase";