← Back to team overview

credativ team mailing list archive

lp:~therp-nl/openupgrade-server/7.0-do_not_raise_premature_view_errors into lp:openupgrade-server

 

Stefan Rijnhart (Therp) has proposed merging lp:~therp-nl/openupgrade-server/7.0-do_not_raise_premature_view_errors into lp:openupgrade-server.

Requested reviews:
  OpenUpgrade Committers (openupgrade-committers)

For more details, see:
https://code.launchpad.net/~therp-nl/openupgrade-server/7.0-do_not_raise_premature_view_errors/+merge/150076

On a major upgrade, the loading of group data triggers the write on a view record (it generates the dynamic groups view on the user form, which is adapted when a new group is loaded into the database). The write on the view triggers the view validation, but at that point the new view is not yet loaded. The old view is invalidated because it contains references to obsolete fields (e.g. context_tz, context_lang).

This branch prevents the OpenUpgrade server to raise these errors, breaking the upgrade process. The errors are still written to the log file.

-- 
https://code.launchpad.net/~therp-nl/openupgrade-server/7.0-do_not_raise_premature_view_errors/+merge/150076
Your team OpenUpgrade Committers is requested to review the proposed merge of lp:~therp-nl/openupgrade-server/7.0-do_not_raise_premature_view_errors into lp:openupgrade-server.
=== modified file 'openerp/openupgrade/openupgrade.py'
--- openerp/openupgrade/openupgrade.py	2012-11-24 22:33:20 +0000
+++ openerp/openupgrade/openupgrade.py	2013-02-22 15:40:50 +0000
@@ -2,7 +2,7 @@
 ##############################################################################
 #
 #    OpenERP, Open Source Management Solution
-#    This module copyright (C) 2011-2012 Therp BV (<http://therp.nl>)
+#    This module copyright (C) 2011-2013 Therp BV (<http://therp.nl>)
 #
 #    This program is free software: you can redistribute it and/or modify
 #    it under the terms of the GNU Affero General Public License as
@@ -324,8 +324,9 @@
     :param original_name: the original name of the column
     :param version: current version as passed to migrate()
     """
-    return 'openupgrade_legacy_'+('_').join(map(str, release.version_info))+'_'+original_name
-        
+    return 'openupgrade_legacy_'+('_').join(
+        map(str, release.version_info[0:2]))+'_'+original_name
+
 def migrate():
     """
     This is the decorator for the migrate() function

=== modified file 'openerp/osv/orm.py'
--- openerp/osv/orm.py	2013-02-19 21:32:25 +0000
+++ openerp/osv/orm.py	2013-02-22 15:40:50 +0000
@@ -1943,7 +1943,10 @@
                 msg = "\n * ".join([r[0] for r in res])
                 msg += "\n\nEither you wrongly customized this view, or some modules bringing those views are not compatible with your current data model"
                 _logger.error(msg)
-                raise except_orm('View error', msg)
+                # OpenUpgrade: do not raise for unknown fields, as these
+                # can be triggered on old views that still have to be
+                # replaced by the upgrade procedure
+                #     raise except_orm('View error', msg)
         return arch, fields
 
     def _get_default_form_view(self, cr, user, context=None):


Follow ups