Bug 14978: Add unique key constraint on issues.itemnumber

The constraint might have existed before bug 14069.
For these DB, this patch will restore it, for others, it will add it :)

Test plan:
> show create table issues;
should not return "unique key itemnumber"
Execute the updatedb entry twice
> show create table issues;
should return only one "unique key itemnumber"

Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Jonathan Druart 2015-10-08 09:15:57 +01:00 committed by Tomas Cohen Arazi
parent 298733cb1e
commit 9e1d8d8c5e
2 changed files with 11 additions and 0 deletions

View file

@ -1148,6 +1148,7 @@ CREATE TABLE `issues` ( -- information related to check outs or issues
`issuedate` datetime default NULL, -- date the item was checked out or issued
`onsite_checkout` int(1) NOT NULL default 0, -- in house use flag
PRIMARY KEY (`issue_id`),
UNIQUE KEY `itemnumber` (`itemnumber`),
KEY `issuesborridx` (`borrowernumber`),
KEY `itemnumber_idx` (`itemnumber`),
KEY `branchcode_idx` (`branchcode`),

View file

@ -11247,6 +11247,16 @@ if(CheckVersion($DBversion)) {
SetVersion($DBversion);
}
$DBversion = 'XXX';
if ( CheckVersion($DBversion) ) {
my $create_table_issues = @{ $dbh->selectall_arrayref(q|SHOW CREATE TABLE issues|) }[0]->[1];
if ($create_table_issues !~ m|UNIQUE KEY.*itemnumber| ) {
$dbh->do(q|ALTER TABLE issues ADD CONSTRAINT UNIQUE KEY (itemnumber)|);
}
print "Update to $DBversion done (Bug 14978: Make sure issues.itemnumber is a unique key)\n";
SetVersion($DBversion);
}
# DEVELOPER PROCESS, search for anything to execute in the db_update directory
# SEE bug 13068
# if there is anything in the atomicupdate, read and execute it.