View | Details | Raw Unified | Return to bug 37419
Collapse All | Expand All

(-)a/installer/data/mysql/atomicupdate/bug_37419.pl (+29 lines)
Line 0 Link Here
1
use Modern::Perl;
2
use Koha::Installer::Output qw(say_warning say_failure say_success say_info);
3
4
return {
5
    bug_number  => "37419",
6
    description => "Replace FK constraint to avoid data loss",
7
    up          => sub {
8
        my ($args) = @_;
9
        my ( $dbh, $out ) = @$args{qw(dbh out)};
10
11
        # Drop table constraint
12
        if ( foreign_key_exists( 'biblio_metadata', 'record_metadata_fk_2' ) ) {
13
            $dbh->do(
14
                q{
15
            ALTER TABLE biblio_metadata DROP FOREIGN KEY record_metadata_fk_2
16
            }
17
            );
18
        }
19
20
        $dbh->do(
21
            q{
22
            ALTER TABLE biblio_metadata
23
            ADD CONSTRAINT `record_metadata_fk_2` FOREIGN KEY (`record_source_id`) REFERENCES `record_sources` (`record_source_id`) ON DELETE RESTRICT ON UPDATE CASCADE
24
        }
25
        );
26
27
        say_success( $out, "Updated foreign key 'biblio_metadata.record_metadata_fk_2'" );
28
    },
29
};
(-)a/installer/data/mysql/kohastructure.sql (-2 / +1 lines)
Lines 1144-1150 CREATE TABLE `biblio_metadata` ( Link Here
1144
  KEY `timestamp` (`timestamp`),
1144
  KEY `timestamp` (`timestamp`),
1145
  KEY `record_metadata_fk_2` (`record_source_id`),
1145
  KEY `record_metadata_fk_2` (`record_source_id`),
1146
  CONSTRAINT `record_metadata_fk_1` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE,
1146
  CONSTRAINT `record_metadata_fk_1` FOREIGN KEY (`biblionumber`) REFERENCES `biblio` (`biblionumber`) ON DELETE CASCADE ON UPDATE CASCADE,
1147
  CONSTRAINT `record_metadata_fk_2` FOREIGN KEY (`record_source_id`) REFERENCES `record_sources` (`record_source_id`) ON DELETE CASCADE ON UPDATE CASCADE
1147
  CONSTRAINT `record_metadata_fk_2` FOREIGN KEY (`record_source_id`) REFERENCES `record_sources` (`record_source_id`) ON DELETE RESTRICT ON UPDATE CASCADE
1148
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1148
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1149
/*!40101 SET character_set_client = @saved_cs_client */;
1149
/*!40101 SET character_set_client = @saved_cs_client */;
1150
1150
1151
- 

Return to bug 37419