From 66b43f9b274d599a4e911fa0c0060acbb72b1e5e Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Tue, 6 Dec 2016 14:22:53 +0100 Subject: [PATCH] [ADD] migrate from 8.0 if possible in init hook --- account_payment_mode/__init__.py | 1 + account_payment_mode/__openerp__.py | 1 + account_payment_mode/hooks.py | 26 ++++++++++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 account_payment_mode/hooks.py diff --git a/account_payment_mode/__init__.py b/account_payment_mode/__init__.py index cde864bae..4826db065 100644 --- a/account_payment_mode/__init__.py +++ b/account_payment_mode/__init__.py @@ -1,3 +1,4 @@ # -*- coding: utf-8 -*- from . import models +from .hooks import pre_init_hook diff --git a/account_payment_mode/__openerp__.py b/account_payment_mode/__openerp__.py index 90c9e4378..6ad583fed 100644 --- a/account_payment_mode/__openerp__.py +++ b/account_payment_mode/__openerp__.py @@ -19,5 +19,6 @@ 'views/account_journal.xml', ], 'demo': ['demo/payment_demo.xml'], + 'pre_init_hook': 'pre_init_hook', 'installable': True, } diff --git a/account_payment_mode/hooks.py b/account_payment_mode/hooks.py new file mode 100644 index 000000000..7b67dd107 --- /dev/null +++ b/account_payment_mode/hooks.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# © 2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + + +def pre_init_hook(cr): + migrate_from_8(cr) + + +def migrate_from_8(cr): + """If we're installed on a database which has the payment_mode table + from 8.0, move its table so that we use the already existing modes""" + cr.execute("SELECT 1 FROM pg_class WHERE relname = 'payment_mode'") + if not cr.fetchone(): + return + try: + from openupgradelib.openupgrade import rename_models + rename_models(cr, [('payment.mode', 'account.payment.mode')]) + except ImportError: + cr.execute('ALTER TABLE payment_mode RENAME TO account_payment_mode') + cr.execute('ALTER SEQUENCE payment_mode_id_seq ' + 'RENAME TO account_payment_mode_id_seq') + cr.execute( + 'ALTER TABLE account_payment_mode ' + 'RENAME COLUMN journal TO fixed_journal_id' + )