From a292dcbbd1241cabb4ed1d904136b55d5d583718 Mon Sep 17 00:00:00 2001 From: mreficent Date: Wed, 19 Sep 2018 18:38:50 +0200 Subject: [PATCH] [ADD] Migration scripts (from v10 to v11) --- .../11.0.1.0.0/openupgrade_analysis.txt | 40 +++++++++++ .../11.0.1.0.0/openupgrade_analysis_work.txt | 55 +++++++++++++++ .../migrations/11.0.1.0.0/post-migration.py | 67 +++++++++++++++++++ .../migrations/11.0.1.0.0/pre-migration.py | 27 ++++++++ 4 files changed, 189 insertions(+) create mode 100644 partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis.txt create mode 100644 partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis_work.txt create mode 100644 partner_industry_secondary/migrations/11.0.1.0.0/post-migration.py create mode 100644 partner_industry_secondary/migrations/11.0.1.0.0/pre-migration.py diff --git a/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis.txt b/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis.txt new file mode 100644 index 000000000..d50fcf75f --- /dev/null +++ b/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis.txt @@ -0,0 +1,40 @@ +---Fields in module 'partner_industry_secondary'--- +partner_industry_secondary / res.partner / secondary_industry_ids (many2many): NEW relation: res.partner.industry +partner_industry_secondary / res.partner.industry / child_ids (one2many) : NEW relation: res.partner.industry +partner_industry_secondary / res.partner.industry / name (False) : NEW required: required, mode: modify +partner_industry_secondary / res.partner.industry / parent_id (many2one) : NEW relation: res.partner.industry +partner_industry_secondary / res.partner.industry / parent_left (integer) : NEW +partner_industry_secondary / res.partner.industry / parent_right (integer) : NEW +partner_sector / res.partner / secondary_sector_ids (many2many): DEL relation: res.partner.sector +partner_sector / res.partner / sector_id (many2one) : DEL relation: res.partner.sector +---XML records in module 'partner_industry_secondary'--- +DEL ir.actions.act_window: partner_sector.res_partner_sector_action +NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_group_partner_manager +NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_portal +NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_public +DEL ir.model.access: partner_sector.access_res_partner_sector_group_partner_manager +DEL ir.model.access: partner_sector.access_res_partner_sector_group_user +DEL ir.model.access: partner_sector.access_res_partner_sector_portal +DEL ir.model.access: partner_sector.access_res_partner_sector_public +DEL ir.ui.menu: partner_sector.menu_res_partner_sector +NEW ir.ui.view: partner_industry_secondary.res_config_settings_view_form +NEW ir.ui.view: partner_industry_secondary.res_partner_industry_view_form +NEW ir.ui.view: partner_industry_secondary.res_partner_industry_view_tree +NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry +NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry_person +NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry_person0 +NEW ir.ui.view: partner_industry_secondary.view_partner_tree_industry +NEW ir.ui.view: partner_industry_secondary.view_partner_tree_industry_person +NEW ir.ui.view: partner_industry_secondary.view_res_partner_filter_industry +NEW ir.ui.view: partner_industry_secondary.view_res_partner_filter_industry_person +DEL ir.ui.view: partner_sector.res_partner_sector_tree_view +DEL ir.ui.view: partner_sector.view_general_configuration +DEL ir.ui.view: partner_sector.view_partner_form_sector +DEL ir.ui.view: partner_sector.view_partner_form_sector_person +DEL ir.ui.view: partner_sector.view_partner_tree_sector +DEL ir.ui.view: partner_sector.view_partner_tree_sector_person +DEL ir.ui.view: partner_sector.view_res_partner_filter_sector +DEL ir.ui.view: partner_sector.view_res_partner_filter_sector_person +DEL ir.ui.view: partner_sector.view_sale_config_settings +NEW res.groups: partner_industry_secondary.group_use_partner_industry_for_person +DEL res.groups: partner_sector.group_use_partner_sector_for_person diff --git a/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis_work.txt b/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis_work.txt new file mode 100644 index 000000000..e708d835b --- /dev/null +++ b/partner_industry_secondary/migrations/11.0.1.0.0/openupgrade_analysis_work.txt @@ -0,0 +1,55 @@ +---Fields in module 'partner_industry_secondary'--- +partner_industry_secondary / res.partner.industry / child_ids (one2many) : NEW relation: res.partner.industry +# nothing to do + +partner_industry_secondary / res.partner.industry / name (False) : NEW required: required, mode: modify +partner_industry_secondary / res.partner.industry / parent_id (many2one) : NEW relation: res.partner.industry +# fill this table with old res_partner_sector table + +partner_industry_secondary / res.partner.industry / parent_left (integer) : NEW +partner_industry_secondary / res.partner.industry / parent_right (integer) : NEW +# recompute + +---Fields in module 'res_partner'--- + +partner_sector / res.partner / sector_id (many2one) : DEL relation: res.partner.sector +# DONE in pre-migration: rename + +partner_sector / res.partner / secondary_sector_ids (many2many): DEL relation: res.partner.sector +partner_industry_secondary / res.partner / secondary_industry_ids (many2many): NEW relation: res.partner.industry +# DONE in post-migration: refill new rel table with old rel table + +---XML records in module 'partner_industry_secondary'--- +DEL ir.actions.act_window: partner_sector.res_partner_sector_action +NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_group_partner_manager +NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_portal +NEW ir.model.access: partner_industry_secondary.access_res_partner_industry_public +DEL ir.model.access: partner_sector.access_res_partner_sector_group_partner_manager +DEL ir.model.access: partner_sector.access_res_partner_sector_group_user +DEL ir.model.access: partner_sector.access_res_partner_sector_portal +DEL ir.model.access: partner_sector.access_res_partner_sector_public +DEL ir.ui.menu: partner_sector.menu_res_partner_sector +NEW ir.ui.view: partner_industry_secondary.res_config_settings_view_form +NEW ir.ui.view: partner_industry_secondary.res_partner_industry_view_form +NEW ir.ui.view: partner_industry_secondary.res_partner_industry_view_tree +NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry +NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry_person +NEW ir.ui.view: partner_industry_secondary.view_partner_form_industry_person0 +NEW ir.ui.view: partner_industry_secondary.view_partner_tree_industry +NEW ir.ui.view: partner_industry_secondary.view_partner_tree_industry_person +NEW ir.ui.view: partner_industry_secondary.view_res_partner_filter_industry +NEW ir.ui.view: partner_industry_secondary.view_res_partner_filter_industry_person +DEL ir.ui.view: partner_sector.res_partner_sector_tree_view +DEL ir.ui.view: partner_sector.view_general_configuration +DEL ir.ui.view: partner_sector.view_partner_form_sector +DEL ir.ui.view: partner_sector.view_partner_form_sector_person +DEL ir.ui.view: partner_sector.view_partner_tree_sector +DEL ir.ui.view: partner_sector.view_partner_tree_sector_person +DEL ir.ui.view: partner_sector.view_res_partner_filter_sector +DEL ir.ui.view: partner_sector.view_res_partner_filter_sector_person +DEL ir.ui.view: partner_sector.view_sale_config_settings +# NOTHING TO DO + +NEW res.groups: partner_industry_secondary.group_use_partner_industry_for_person +DEL res.groups: partner_sector.group_use_partner_sector_for_person +# DONE in pre-migration: rename of xmlids \ No newline at end of file diff --git a/partner_industry_secondary/migrations/11.0.1.0.0/post-migration.py b/partner_industry_secondary/migrations/11.0.1.0.0/post-migration.py new file mode 100644 index 000000000..304132ddd --- /dev/null +++ b/partner_industry_secondary/migrations/11.0.1.0.0/post-migration.py @@ -0,0 +1,67 @@ +# Copyright 2018 Eficent Business and IT Consulting Services, S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from openupgradelib import openupgrade +from psycopg2.extensions import AsIs + + +def fill_res_partner_industry(cr): + cr.execute( + """ + INSERT INTO res_partner_industry (name, active, create_uid, + create_date, write_uid, write_date, %s) + SELECT name, TRUE as active, create_uid, create_date, write_uid, + write_date, id + FROM res_partner_sector + """, (AsIs(openupgrade.get_legacy_name('old_sector_id')), ), + ) + # corrected parent_id here: + cr.execute( + """ + UPDATE res_partner_industry rpi + SET parent_id = rpi2.id + FROM res_partner_sector rps + INNER JOIN res_partner_industry rpi2 ON rps.parent_id = rpi2.%s + WHERE rpi.%s = rps.id + """, ( + AsIs(openupgrade.get_legacy_name('old_sector_id')), + AsIs(openupgrade.get_legacy_name('old_sector_id')), + ), + ) + + +def update_res_partner_industry(cr): + cr.execute( + """ + UPDATE res_partner rp + SET industry_id = rpi.id + FROM res_partner_industry rpi + WHERE rp.%s IS NOT NULL AND rp.%s = rpi.%s + """, ( + AsIs(openupgrade.get_legacy_name('sector_id')), + AsIs(openupgrade.get_legacy_name('sector_id')), + AsIs(openupgrade.get_legacy_name('old_sector_id')), + ), + ) + + +def fill_res_partner_industry_secondary(cr): + cr.execute( + """ + INSERT INTO res_partner_res_partner_industry_rel (res_partner_id, + res_partner_industry_id) + SELECT rel.res_partner_id, rpi.id + FROM res_partner_res_partner_sector_rel rel + LEFT JOIN res_partner_industry rpi + ON rel.res_partner_sector_id = rpi.%s + """, (AsIs(openupgrade.get_legacy_name('old_sector_id')), ), + ) + + +@openupgrade.migrate(use_env=True) +def migrate(env, version): + cr = env.cr + if openupgrade.table_exists(cr, 'res_partner_sector'): + fill_res_partner_industry(cr) + env['res.partner.industry']._parent_store_compute() + update_res_partner_industry(cr) + fill_res_partner_industry_secondary(cr) diff --git a/partner_industry_secondary/migrations/11.0.1.0.0/pre-migration.py b/partner_industry_secondary/migrations/11.0.1.0.0/pre-migration.py new file mode 100644 index 000000000..bd105b53a --- /dev/null +++ b/partner_industry_secondary/migrations/11.0.1.0.0/pre-migration.py @@ -0,0 +1,27 @@ +# Copyright 2018 Eficent Business and IT Consulting Services, S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from openupgradelib import openupgrade +from psycopg2.extensions import AsIs + +_column_renames = { + 'res_partner': [('sector_id', None)], +} + +_xmlid_renames = [ + ('partner_sector.group_use_partner_sector_for_person', + 'partner_industry_secondary.group_use_partner_industry_for_person'), +] + + +@openupgrade.migrate(use_env=True) +def migrate(env, version): + cr = env.cr + if openupgrade.table_exists(cr, 'res_partner_sector'): + openupgrade.rename_columns(cr, _column_renames) + openupgrade.rename_xmlids(cr, _xmlid_renames) + cr.execute( + """ + ALTER TABLE res_partner_industry + ADD COLUMN %s integer; + """, (AsIs(openupgrade.get_legacy_name('old_sector_id')), ), + )