1-- Merge duplicate forum boards.
2--
3-- Older schema seeds (and the OT -> ZnoteX converter) could INSERT the default
4-- boards more than once, leaving two "Discussion", two "Staff Board", etc. This
5-- keeps the lowest id for each (name, guild_id), moves every thread onto it and
6-- deletes the emptied duplicates. Safe to run more than once.
7
8UPDATE `znote_forum_threads` `t`
9JOIN `znote_forum` `dup` ON `dup`.`id` = `t`.`forum_id`
10JOIN (
11 SELECT `name`, `guild_id`, MIN(`id`) AS `keep_id`
12 FROM `znote_forum`
13 GROUP BY `name`, `guild_id`
14) `k` ON `k`.`name` = `dup`.`name` AND `k`.`guild_id` = `dup`.`guild_id`
15SET `t`.`forum_id` = `k`.`keep_id`
16WHERE `t`.`forum_id` <> `k`.`keep_id`;
17
18DELETE `f` FROM `znote_forum` `f`
19JOIN (
20 SELECT `name`, `guild_id`, MIN(`id`) AS `keep_id`
21 FROM `znote_forum`
22 GROUP BY `name`, `guild_id`
23) `k` ON `k`.`name` = `f`.`name` AND `k`.`guild_id` = `f`.`guild_id`
24WHERE `f`.`id` <> `k`.`keep_id`;
25