diff --git a/addons/base_import/models/base_import.py b/addons/base_import/models/base_import.py index 35d5692e95b..4e4945fd37c 100644 --- a/addons/base_import/models/base_import.py +++ b/addons/base_import/models/base_import.py @@ -885,6 +885,8 @@ class Import(models.TransientModel): try: if dryrun: self._cr.execute('ROLLBACK TO SAVEPOINT import') + # cancel all changes done to the registry/ormcache + self.pool.reset_changes() else: self._cr.execute('RELEASE SAVEPOINT import') except psycopg2.InternalError: diff --git a/odoo/models.py b/odoo/models.py index 1af6cd9c173..b2aab1d5f36 100644 --- a/odoo/models.py +++ b/odoo/models.py @@ -846,7 +846,6 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): ids = [] messages = [] ModelData = self.env['ir.model.data'] - ModelData.clear_caches() # list of (xid, vals, info) for records to be created in batch batch = [] @@ -928,6 +927,8 @@ class BaseModel(MetaModel('DummyModel', (object,), {'_register': False})): if any(message['type'] == 'error' for message in messages): cr.execute('ROLLBACK TO SAVEPOINT model_load') ids = False + # cancel all changes done to the registry/ormcache + self.pool.reset_changes() return {'ids': ids, 'messages': messages}