From 889ffea07a1258c6dd1f7b09fd0e17501450d493 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Fri, 20 Sep 2019 15:06:38 -0300 Subject: [PATCH] Bug 23321: (QA follow-up) Make atomic update idempotent Signed-off-by: Tomas Cohen Arazi --- .../data/mysql/atomicupdate/bug_23321.perl | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/installer/data/mysql/atomicupdate/bug_23321.perl b/installer/data/mysql/atomicupdate/bug_23321.perl index 9ddf9c6199..0aff6a8a37 100644 --- a/installer/data/mysql/atomicupdate/bug_23321.perl +++ b/installer/data/mysql/atomicupdate/bug_23321.perl @@ -1,20 +1,22 @@ $DBversion = 'XXX'; # will be replaced by the RM if ( CheckVersion($DBversion) ) { - $dbh->do(qq{ -CREATE TABLE `cash_registers` ( - `id` int(11) NOT NULL auto_increment, -- unique identifier for each account register - `name` varchar(24) NOT NULL, -- the user friendly identifier for each account register - `description` longtext NOT NULL, -- the user friendly description for each account register - `branch` varchar(10) NOT NULL, -- the foreign key the library this account register belongs - `branch_default` tinyint(1) NOT NULL DEFAULT 0, -- boolean flag to denote that this till is the branch default - `starting_float` decimal(28, 6), -- the starting float this account register should be assigned - `archived` tinyint(1) NOT NULL DEFAULT 0, -- boolean flag to denote if this till is archived or not - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`,`branch`), - CONSTRAINT cash_registers_branch FOREIGN KEY (branch) REFERENCES branches (branchcode) ON UPDATE CASCADE ON DELETE CASCADE -) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci; - }); + unless ( TableExists( 'cash_registers' ) ) { + $dbh->do(qq{ + CREATE TABLE `cash_registers` ( + `id` int(11) NOT NULL auto_increment, -- unique identifier for each account register + `name` varchar(24) NOT NULL, -- the user friendly identifier for each account register + `description` longtext NOT NULL, -- the user friendly description for each account register + `branch` varchar(10) NOT NULL, -- the foreign key the library this account register belongs + `branch_default` tinyint(1) NOT NULL DEFAULT 0, -- boolean flag to denote that this till is the branch default + `starting_float` decimal(28, 6), -- the starting float this account register should be assigned + `archived` tinyint(1) NOT NULL DEFAULT 0, -- boolean flag to denote if this till is archived or not + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`,`branch`), + CONSTRAINT cash_registers_branch FOREIGN KEY (branch) REFERENCES branches (branchcode) ON UPDATE CASCADE ON DELETE CASCADE + ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci; + }); + } unless ( column_exists( 'accountlines', 'register_id' ) ) { $dbh->do(qq{ALTER TABLE `accountlines` ADD `register_id` int(11) NULL DEFAULT NULL AFTER `manager_id`}); -- 2.23.0