# Copyright 2019 Tecnativa - Pedro M. Baeza # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from openupgradelib import openupgrade from psycopg2 import sql _column_renames = { 'account_asset_profile': [ ('parent_id', None), ], 'account_asset': [ ('parent_id', None), ], } def move_view_assets(cr): """Copy view assets to other table for preserving them, but outside of the main table, so remove them from there. """ temp_table = sql.Identifier( openupgrade.get_legacy_name('account_asset_view')) openupgrade.logged_query( cr, sql.SQL(""" CREATE TABLE {} AS ( SELECT * FROM account_asset WHERE type='view' )""").format(temp_table), ) openupgrade.logged_query(cr, "DELETE FROM account_asset WHERE type='view'") @openupgrade.migrate() def migrate(env, version): if openupgrade.column_exists(env.cr, 'account_asset', 'parent_id'): # if migrating directly from v11 `account_asset` module, there are no # view assets nor parents openupgrade.rename_columns(env.cr, _column_renames) openupgrade.logged_query( env.cr, """ ALTER TABLE account_asset DROP CONSTRAINT account_asset_parent_id_fkey""", ) openupgrade.logged_query( env.cr, """ ALTER TABLE account_asset_profile DROP CONSTRAINT account_asset_profile_parent_id_fkey""", ) move_view_assets(env.cr)