37 lines
1.5 KiB
MySQL
37 lines
1.5 KiB
MySQL
|
|
-- © 2021-2026 TechnoLibre (http://www.technolibre.ca)
|
||
|
|
-- License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
|
||
|
|
--
|
||
|
|
-- Correctifs à appliquer AVANT qu'OpenUpgrade ne migre vers Odoo 18.
|
||
|
|
--
|
||
|
|
-- En SQL et non en Python : ce fichier tourne sur une base encore en
|
||
|
|
-- 17, que le code de la 18 ne saurait pas charger.
|
||
|
|
|
||
|
|
-- forum_tag_rel : la colonne qui pointe vers forum.post s'appelait
|
||
|
|
-- `forum_id` — un nom trompeur, elle ne désignait pas un forum. La 18 la
|
||
|
|
-- nomme `forum_post_id`.
|
||
|
|
--
|
||
|
|
-- OpenUpgrade le DÉCLARE dans son analyse :
|
||
|
|
-- website_forum / forum.post / tag_ids (many2many)
|
||
|
|
-- : column1 is now 'forum_post_id' ('forum_id') [forum_tag_rel]
|
||
|
|
-- mais `website_forum/18.0.1.2/` ne contient aucun script : rien ne
|
||
|
|
-- l'applique. Le chargement casse alors sur
|
||
|
|
-- column "forum_post_id" referenced in foreign key constraint does not exist
|
||
|
|
-- et la base reste à moitié migrée.
|
||
|
|
--
|
||
|
|
-- Les deux conditions rendent l'ordre rejouable : rien à faire si la
|
||
|
|
-- table n'existe pas (website_forum non installé) ni si le renommage a
|
||
|
|
-- déjà eu lieu.
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF EXISTS (
|
||
|
|
SELECT 1 FROM information_schema.columns
|
||
|
|
WHERE table_name = 'forum_tag_rel' AND column_name = 'forum_id'
|
||
|
|
) AND NOT EXISTS (
|
||
|
|
SELECT 1 FROM information_schema.columns
|
||
|
|
WHERE table_name = 'forum_tag_rel' AND column_name = 'forum_post_id'
|
||
|
|
) THEN
|
||
|
|
ALTER TABLE forum_tag_rel RENAME COLUMN forum_id TO forum_post_id;
|
||
|
|
RAISE NOTICE 'forum_tag_rel.forum_id renommee en forum_post_id';
|
||
|
|
END IF;
|
||
|
|
END $$;
|