From 5ee76ba56a3f004298d18820adf7584522b88c8c Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Wed, 15 Apr 2020 13:41:37 +0100 Subject: [PATCH] FIX #12429 TIME 0:02 fix duplicate value in migration sql --- migration/18.04/1804.sql | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/migration/18.04/1804.sql b/migration/18.04/1804.sql index 4586a55b0ca..8d4801b839c 100644 --- a/migration/18.04/1804.sql +++ b/migration/18.04/1804.sql @@ -675,14 +675,22 @@ DO $$ BEGIN SELECT users.id, usergroups.id, groupbasket.basket_id, TRUE FROM users, usergroups, groupbasket, usergroup_content WHERE usergroup_content.primary_group = 'Y' AND groupbasket.group_id = usergroup_content.group_id AND users.user_id = usergroup_content.user_id AND usergroups.group_id = usergroup_content.group_id ORDER BY users.id; - insert into users_baskets_preferences (user_serial_id, group_serial_id, basket_id, display) - select users.id, usergroups.id, user_baskets_secondary.basket_id, TRUE from users, usergroups, user_baskets_secondary - where users.user_id = user_baskets_secondary.user_id and usergroups.group_id = user_baskets_secondary.group_id - order by users.id; - INSERT INTO users_baskets_preferences (user_serial_id, group_serial_id, basket_id, display) - SELECT u.id, g.id, 'IndexingBasket', TRUE FROM users as u INNER JOIN usergroup_content AS c ON u.user_id=c.user_id INNER JOIN usergroups AS g ON g.group_id=c.group_id - WHERE (u.user_id,g.group_id) IN (SELECT user_id, group_id FROM usergroup_content WHERE primary_group = 'N'); - DROP TABLE IF EXISTS user_baskets_secondary; + + BEGIN + INSERT INTO users_baskets_preferences (user_serial_id, group_serial_id, basket_id, display) + SELECT users.id, usergroups.id, user_baskets_secondary.basket_id, TRUE from users, usergroups, user_baskets_secondary + WHERE users.user_id = user_baskets_secondary.user_id and usergroups.group_id = user_baskets_secondary.group_id + ORDER BY users.id; + EXCEPTION WHEN unique_violation THEN + END; + + BEGIN + INSERT INTO users_baskets_preferences (user_serial_id, group_serial_id, basket_id, display) + SELECT u.id, g.id, 'IndexingBasket', TRUE FROM users as u INNER JOIN usergroup_content AS c ON u.user_id=c.user_id INNER JOIN usergroups AS g ON g.group_id=c.group_id + WHERE (u.user_id,g.group_id) IN (SELECT user_id, group_id FROM usergroup_content WHERE primary_group = 'N'); + EXCEPTION WHEN unique_violation THEN + END; + END IF; END$$; -- GitLab