@@ -, +, @@ --- installer/data/mysql/db_revs/231200044.pl | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) --- a/installer/data/mysql/db_revs/231200044.pl +++ a/installer/data/mysql/db_revs/231200044.pl @@ -12,9 +12,8 @@ return { $dbh->do( q{ ALTER TABLE bookings - ADD COLUMN `pickup_library_id` varchar(10) DEFAULT NULL COMMENT 'Identifier for booking pickup library' AFTER `item_id`, - ADD CONSTRAINT `bookings_ibfk_4` FOREIGN KEY (`pickup_library_id`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE - } + ADD COLUMN `pickup_library_id` varchar(10) DEFAULT NULL COMMENT 'Identifier for booking pickup library' AFTER `item_id` + } ) == 1 && say_success( $out, "Added column 'bookings.pickup_library_id'" ); @@ -59,5 +58,15 @@ return { } ) == 1 && say_success( $out, "Updated column 'bookings.pickup_library_id' to NOT NULL" ); } + + unless ( foreign_key_exists( 'bookings', 'bookings_ibfk_4' ) ) { + $dbh->do( + q{ + ALTER TABLE bookings + ADD CONSTRAINT `bookings_ibfk_4` FOREIGN KEY (`pickup_library_id`) REFERENCES `branches` (`branchcode`) ON DELETE CASCADE ON UPDATE CASCADE + } + ) == 1 + && say_success( $out, "Added foreign key 'bookings_ibfk_4' to column 'bookings.pickup_library_id'" ); + } }, }; --