From f0e85e2c1a3998067c5221bb02ca77481932a704 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Tue, 25 Mar 2014 11:46:23 +0100 Subject: [PATCH] [IMP] Ensure proper migration from older versions --- account_banking/__openerp__.py | 2 +- .../migrations/7.0.0.3/pre-migration.py | 44 +++++++++++++++++++ .../migrations/7.0.0.1.165/pre-migration.py | 3 +- 3 files changed, 47 insertions(+), 2 deletions(-) create mode 100644 account_banking/migrations/7.0.0.3/pre-migration.py diff --git a/account_banking/__openerp__.py b/account_banking/__openerp__.py index ae6f66bc1..bff6beabc 100644 --- a/account_banking/__openerp__.py +++ b/account_banking/__openerp__.py @@ -26,7 +26,7 @@ { 'name': 'Account Banking', - 'version': '0.2', + 'version': '0.3', 'license': 'AGPL-3', 'author': 'Banking addons community', 'website': 'https://launchpad.net/banking-addons', diff --git a/account_banking/migrations/7.0.0.3/pre-migration.py b/account_banking/migrations/7.0.0.3/pre-migration.py new file mode 100644 index 000000000..dfec20809 --- /dev/null +++ b/account_banking/migrations/7.0.0.3/pre-migration.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Copyright (C) 2014 Akretion (http://www.akretion.com/) +# @author: Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +def table_exists(cr, table): + """ Check whether a certain table or view exists """ + cr.execute( + 'SELECT count(relname) FROM pg_class WHERE relname = %s', + (table,)) + return cr.fetchone()[0] == 1 + +def migrate(cr, version): + """ + Migration script for semantic changes in account_banking_payment_export. + Putting the same script in this module for users migrating from 6.1, + before the export module was refactored out. + """ + if not version or not table_exists(cr, 'payment_line'): + return + cr.execute( + "UPDATE payment_line SET communication = communication2, " + "communication2 = null " + "FROM payment_order " + "WHERE payment_line.order_id = payment_order.id " + "AND payment_order.state in ('draft', 'open') " + "AND payment_line.state = 'normal' " + "AND communication2 is not null") diff --git a/account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py b/account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py index 91839f15e..a420f05fd 100644 --- a/account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py +++ b/account_banking_payment_export/migrations/7.0.0.1.165/pre-migration.py @@ -21,6 +21,8 @@ def migrate(cr, version): + if not version: + return cr.execute( "UPDATE payment_line SET communication = communication2, " "communication2 = null " @@ -28,5 +30,4 @@ def migrate(cr, version): "WHERE payment_line.order_id = payment_order.id " "AND payment_order.state in ('draft', 'open') " "AND payment_line.state = 'normal' " - "AND communication is null" "AND communication2 is not null")