Bug 30449: (QA follow-up) Report back on problematic situations

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Tomas Cohen Arazi 2022-04-25 10:09:41 -03:00 committed by Kyle Hall
parent 7e0ff2da95
commit d41a9d2bb2
1 changed files with 38 additions and 4 deletions

View File

@ -13,11 +13,45 @@ return {
$dbh->do( q|ALTER TABLE borrower_attribute_types DROP INDEX category_code_fk| );
}
}
if( !foreign_key_exists('borrower_attribute_types', 'borrower_attribute_types_ibfk_1') ) {
if( !index_exists('borrower_attribute_types', 'category_code') ) {
$dbh->do( q|ALTER TABLE borrower_attribute_types ADD INDEX category_code (category_code)| );
if (
!foreign_key_exists(
'borrower_attribute_types', 'borrower_attribute_types_ibfk_1'
)
)
{
my $sth = $dbh->prepare(
q{
SELECT category_code
FROM borrower_attribute_types
WHERE category_code NOT IN (SELECT categorycode FROM categories);
}
$dbh->do( q|ALTER TABLE borrower_attribute_types ADD CONSTRAINT borrower_attribute_types_ibfk_1 FOREIGN KEY (`category_code`) REFERENCES `categories` (`categorycode`)| );
);
$sth->execute;
my @invalid_categories;
while ( my $row = $sth->fetchrow_arrayref() ) {
push( @invalid_categories, $row->[0] );
}
if (@invalid_categories) {
die "The 'borrower_attribute_types' table contains "
. "references to invalid category codes: "
. join( ', ', @invalid_categories );
}
if ( !index_exists( 'borrower_attribute_types', 'category_code' ) )
{
$dbh->do(q|
ALTER TABLE borrower_attribute_types ADD INDEX category_code (category_code)
|);
}
$dbh->do(q|
ALTER TABLE borrower_attribute_types
ADD CONSTRAINT borrower_attribute_types_ibfk_1 FOREIGN KEY (`category_code`) REFERENCES `categories` (`categorycode`)
|);
}
},
};