This question has been flagged
2 Replies
11963 Views

Hi all,

Hope this is the correct place to ask this (Tried the openupgarde launchpad thing but had no luck). As per the title, I am trying to migrate my openerp 7 database to version 8 as I really want to test the website builder. I set up a seperate (non-production) ubuntu server running openerp 7 and imported my existing database without any issues. I then tried 2 things (admittedly I was way out of my depth) :

1) I followed this guide on launchpad - https://answers.launchpad.net/openupgrade-server/+question/209721 without much success. I got to the stage where the migration actually ran but I suspect the details were outdated and I simply don't know enough to rectify this.

2) I did a git clone for openupgarde server and tried the migration script I however still get an error about bzrlib not found (or something in that line)

Could anybody kindly assist a noob with the step-by-step guide for the best route to take?

Thanks.

Avatar
Discard

can it be that (v8 still under heavy construction I think) it is still a little too early for a migration? Maybe openugrade needs to look how v8 actually works and then they will have a huge workload on their plate ... and then, it's worth a shot? ... I am totally out of my league here myself and this is just a wild guess though

Best Answer

Hello,

try with the automated migration script

Avatar
Discard
Author

Hi thanks for the response. I have tried various ways with openupgrade. When using the script and specifying "--run-migrations=8.0" it doesn't seem to recognise "8.0" However doing "7.0" seems to initiate without problems. Does openupgrade support migration to 8? or is this still pending. Thanks again.

8.0 should be supported: https://github.com/OpenUpgrade/OpenUpgrade/blob/8.0/scripts/migrate.py#L63 but never tried for now

eLBati, can you plase shed a bit more light on this? When i run the migrate.py, it stops with an error: copying database virus to virus_migrated... Traceback (most recent call last): File "migrate.py", line 303, in db_name = copy_database(conn_parms) File "migrate.py", line 26, in copy_database conn = psycopg2.connect(**conn_parms) File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect connection_factory=connection_factory, async=async) psycopg2.OperationalError: FATAL: Peer authentication failed for user "openerp"

You have a configuration problem with the connection to postgresql

Thanks for your response!

But my OpenERP 7 installation works perfectly and the installation was done by its intsallation script which i haven't touched.

What can i do to fix this?

2014-09-24 15:04 GMT+03:00 eLBati <elbaddy-gmail-com@mail.odoo.com>:

You have a configuration problem with the connection to postgresql

--
eLBati
Sent by OpenERP S.A. using Odoo about Forum Post False

Best Answer

eLBati, can you plase shed a bit more light on this?

When i run the migrate.py, it stops with an error:

copying database virus to virus_migrated...
Traceback (most recent call last):
  File "migrate.py", line 303, in <module>
    db_name = copy_database(conn_parms)
  File "migrate.py", line 26, in copy_database
    conn = psycopg2.connect(**conn_parms)
  File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 179, in connect
    connection_factory=connection_factory, async=async)
psycopg2.OperationalError: FATAL:  Peer authentication failed for user "openerp"

Avatar
Discard

Try updating your pg_hba.conf 'auth_method' for the migration and then revert. http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html

It worked! Many thanks!

2014-10-01 13:42 GMT+03:00 George Mengelberg <george-mengelberg-gmail-com@mail.odoo.com>:

Try updating your pg_hba.conf 'auth_method' for the migration and then revert. http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html

--
George Mengelberg
Sent by OpenERP S.A. using Odoo about Forum Post False

However, there's a further error during the upgrade, maybe you will be so kind to help me out on this as well?

/usr/lib/python2.7/dist-packages/babel/__init__.py:33: UserWarning: Module openerp was already imported from /var/tmp/openupgrade/8.0/server/openerp/__init__.py, but /usr/lib/pymodules/python2.7 is being added to sys.path
  from pkg_resources import get_distribution, ResolutionError
Traceback (most recent call last):
  File "/var/tmp/openupgrade/8.0/server/openerp-server", line 2, in <module>
    import openerp
  File "/var/tmp/openupgrade/8.0/server/openerp/__init__.py", line 72, in <module>
    import modules
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/__init__.py", line 27, in <module>
    from . import db, graph, loading, migration, module, registry
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/graph.py", line 32, in <module>
    import openerp.osv as osv
  File "/var/tmp/openupgrade/8.0/server/openerp/osv/__init__.py", line 22, in <module>
    import osv
  File "/var/tmp/openupgrade/8.0/server/openerp/osv/osv.py", line 23, in <module>
    from .orm import Model, TransientModel, AbstractModel
  File "/var/tmp/openupgrade/8.0/server/openerp/osv/orm.py", line 5, in <module>
    from ..models import (
  File "/var/tmp/openupgrade/8.0/server/openerp/models.py", line 62, in <module>
    from . import api
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 71, in <module>
    from openerp.tools import frozendict
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/__init__.py", line 26, in <module>
    from misc import *
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/misc.py", line 54, in <module>
    from cache import *
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/cache.py", line 24, in <module>
    from decorator import decorator
ImportError: No module named decorator


2014-10-02 16:02 GMT+03:00 Yevgen 'Chief_MC' Lysenko <chiefmc.ua@gmail.com>:
It worked! Many thanks!

2014-10-01 13:42 GMT+03:00 George Mengelberg <george-mengelberg-gmail-com@mail.odoo.com>:

Try updating your pg_hba.conf 'auth_method' for the migration and then revert. http://www.postgresql.org/docs/9.3/static/auth-pg-hba-conf.html

--
George Mengelberg
Sent by OpenERP S.A. using Odoo about Forum Post False


I've fixed the problem, installing the needed Python modules and been able to launch the migration process, but it stubmled upon an error:
2014-10-03 12:23:42,099 1646 INFO ? openerp: OpenERP version 8.0
2014-10-03 12:23:42,100 1646 INFO ? openerp: addons paths: ['/home/chief_mc/.local/share/Odoo/addons/8.0', u'/var/tmp/openupgrade/8.0/server/openerp/addons', u'/var/tmp/openupgrade/8.0/addons']
2014-10-03 12:23:42,100 1646 INFO ? openerp: database hostname: localhost
2014-10-03 12:23:42,100 1646 INFO ? openerp: database port: 5432
2014-10-03 12:23:42,100 1646 INFO ? openerp: database user: openerp
2014-10-03 12:23:42,650 1646 INFO virus_migrated openerp.modules.loading: loading 1 modules...
2014-10-03 12:23:42,654 1646 INFO virus_migrated openerp.modules.migration: module base: Running migration [>8.0.1.3] pre-migration
2014-10-03 12:23:42,655 1646 INFO virus_migrated openerp.modules.migration: module base: Running migration [>8.0.1.3] pre-migration
2014-10-03 12:23:42,923 1646 INFO virus_migrated OpenUpgrade: base: pre-migration script called with version 7.0.1.3
2014-10-03 12:23:42,929 1646 ERROR virus_migrated OpenUpgrade: Invalid value 'tree_account_reconciliation' in the table 'ir_ui_view' for the field 'type'. (1 rows).
2014-10-03 12:23:43,310 1646 INFO virus_migrated openerp.modules.module: module base: creating or updating database tables
2014-10-03 12:23:47,481 1646 ERROR virus_migrated openerp.sql_db: bad query: ALTER TABLE "ir_attachment" ALTER COLUMN "datas_fname" TYPE VARCHAR
Traceback (most recent call last):
  File "/var/tmp/openupgrade/8.0/server/openerp/sql_db.py", line 234, in execute
    res = self._obj.execute(query, params)
NotSupportedError: cannot alter type of a column used by a view or rule
DETAIL:  rule _RETURN on view report_document_user depends on column "datas_fname"

2014-10-03 12:23:49,605 1646 INFO virus_migrated openerp.models: storing computed values of fields.function 'crud_model_name'
2014-10-03 12:23:49,613 1646 INFO virus_migrated openerp.models: storing computed values of fields.function 'wkf_model_name'
2014-10-03 12:23:49,614 1646 INFO virus_migrated openerp.models: storing computed values of fields.function 'commercial_partner_id'
2014-10-03 12:23:49,858 1646 INFO virus_migrated openerp.models: storing computed values of fields.function 'email'
2014-10-03 12:23:49,869 1646 INFO virus_migrated openerp.models: storing computed values of fields.function 'phone'
2014-10-03 12:23:50,056 1646 INFO virus_migrated openerp.modules.loading: loading base/base_data.xml
2014-10-03 12:23:50,357 1646 ERROR virus_migrated openerp.addons.base.ir.ir_ui_view: Field `menu_id` does not exist

Error context:
View `res.users.groups`
[view_id: 159, xml_id: base.user_groups_view, model: res.users, parent_id: 156]
2014-10-03 12:23:50,400 1646 CRITICAL virus_migrated openerp.service.server: Failed to initialize database `virus_migrated`.
Traceback (most recent call last):
  File "/var/tmp/openupgrade/8.0/server/openerp/service/server.py", line 901, in preload_registries
    registry = RegistryManager.new(dbname, update_module=update_module)
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/registry.py", line 324, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/loading.py", line 337, in load_modules
    loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report, upg_registry=upg_registry)
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/loading.py", line 205, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/loading.py", line 120, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/convert.py", line 902, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/convert.py", line 988, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/convert.py", line 854, in parse
    self._tags[rec.tag](self.cr, rec, n, mode=mode)
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/convert.py", line 768, in _tag_record
    id = self.pool['ir.model.data']._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/addons/base/ir/ir_model.py", line 1064, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/addons/base/res/res_users.py", line 714, in create
    self.update_user_groups_view(cr, uid, context)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/addons/base/res/res_users.py", line 755, in update_user_groups_view
    view.write({'arch': xml_content})
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 235, in wrapper
    return new_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 552, in new_api
    result = method(self._model, cr, uid, self.ids, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/addons/base/ir/ir_ui_view.py", line 282, in write
    context)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 360, in old_api
    result = method(recs, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/models.py", line 3692, in write
    self._write(old_vals)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 235, in wrapper
    return new_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 552, in new_api
    result = method(self._model, cr, uid, self.ids, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/models.py", line 3854, in _write
    recs._validate_fields(vals)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 235, in wrapper
    return new_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/models.py", line 1297, in _validate_fields
    raise ValidationError('\n'.join(errors))
ParseError: "ValidateError
Field(s) `arch` failed against a constraint: Invalid view definition

Error details:
Field `menu_id` does not exist

Error context:
View `res.users.groups`
[view_id: 159, xml_id: base.user_groups_view, model: res.users, parent_id: 156]" while parsing /var/tmp/openupgrade/8.0/server/openerp/addons/base/base_data.xml:88, near
<record id="group_portal" model="res.groups">
            <field name="name">Portal</field>
            <field name="comment">Portal members have specific access rights (such as record rules and restricted menus).
                They usually do not belong to the usual OpenERP groups.</field>
        </record>
2014-10-03 12:23:50,486 1646 INFO virus_migrated openerp.service.server: Initiating shutdown
2014-10-03 12:23:50,487 1646 INFO virus_migrated openerp.service.server: Hit CTRL-C again or send a second signal to force the shutdown.

I would focus on what in the script is trying to convert the datatypes: 2014-10-03 12:23:47,481 1646 ERROR virus_migrated openerp.sql_db: bad query: ALTER TABLE "ir_attachment" ALTER COLUMN "datas_fname" TYPE VARCHAR Traceback (most recent call last): File "/var/tmp/openupgrade/8.0/server/openerp/sql_db.py", line 234, in execute res = self._obj.execute(query, params) NotSupportedError: cannot alter type of a column used by a view or rule DETAIL: rule _RETURN on view report_document_user depends on column "datas_fname"

Sorry for bothering, i'm not into Python at all, i'm an Objective C guy, but i think that the culprit is with an event of status 'CRITICAL', which was lower in the log, here the complete log:
2014-10-06 11:06:52,093 8968 INFO ? openerp: OpenERP version 8.0
2014-10-06 11:06:52,094 8968 INFO ? openerp: addons paths: ['/home/chief_mc/.local/share/Odoo/addons/8.0', u'/var/tmp/openupgrade/8.0/server/openerp/addons', u'/var/tmp/openupgrade/8.0/addons']
2014-10-06 11:06:52,094 8968 INFO ? openerp: database hostname: localhost
2014-10-06 11:06:52,094 8968 INFO ? openerp: database port: 5432
2014-10-06 11:06:52,095 8968 INFO ? openerp: database user: openerp
2014-10-06 11:06:52,612 8968 INFO virus_copy_migrated openerp.modules.loading: loading 1 modules...
2014-10-06 11:06:52,614 8968 INFO virus_copy_migrated openerp.modules.migration: module base: Running migration [>8.0.1.3] pre-migration
2014-10-06 11:06:52,615 8968 INFO virus_copy_migrated openerp.modules.migration: module base: Running migration [>8.0.1.3] pre-migration
2014-10-06 11:06:52,816 8968 INFO virus_copy_migrated OpenUpgrade: base: pre-migration script called with version 7.0.1.3
2014-10-06 11:06:53,218 8968 INFO virus_copy_migrated openerp.modules.module: module base: creating or updating database tables
2014-10-06 11:06:55,034 8968 ERROR virus_copy_migrated openerp.sql_db: bad query: ALTER TABLE "ir_attachment" ALTER COLUMN "datas_fname" TYPE VARCHAR
Traceback (most recent call last):
  File "/var/tmp/openupgrade/8.0/server/openerp/sql_db.py", line 234, in execute
    res = self._obj.execute(query, params)
NotSupportedError: cannot alter type of a column used by a view or rule
DETAIL:  rule _RETURN on view report_document_user depends on column "datas_fname"

2014-10-06 11:06:56,807 8968 INFO virus_copy_migrated openerp.models: storing computed values of fields.function 'crud_model_name'
2014-10-06 11:06:56,810 8968 INFO virus_copy_migrated openerp.models: storing computed values of fields.function 'wkf_model_name'
2014-10-06 11:06:56,811 8968 INFO virus_copy_migrated openerp.models: storing computed values of fields.function 'display_name'
2014-10-06 11:06:57,020 8968 INFO virus_copy_migrated openerp.models: storing computed values of fields.function 'commercial_partner_id'
2014-10-06 11:06:57,115 8968 INFO virus_copy_migrated openerp.models: storing computed values of fields.function 'email'
2014-10-06 11:06:57,124 8968 INFO virus_copy_migrated openerp.models: storing computed values of fields.function 'phone'
2014-10-06 11:06:57,290 8968 INFO virus_copy_migrated openerp.modules.loading: loading base/base_data.xml
2014-10-06 11:06:57,510 8968 ERROR virus_copy_migrated openerp.addons.base.ir.ir_ui_view: Field `menu_id` does not exist

Error context:
View `res.users.groups`
[view_id: 159, xml_id: base.user_groups_view, model: res.users, parent_id: 156]
2014-10-06 11:06:57,551 8968 CRITICAL virus_copy_migrated openerp.service.server: Failed to initialize database `virus_copy_migrated`.
Traceback (most recent call last):
  File "/var/tmp/openupgrade/8.0/server/openerp/service/server.py", line 901, in preload_registries
    registry = RegistryManager.new(dbname, update_module=update_module)
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/registry.py", line 324, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/loading.py", line 337, in load_modules
    loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=update_module, report=report, upg_registry=upg_registry)
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/loading.py", line 205, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/var/tmp/openupgrade/8.0/server/openerp/modules/loading.py", line 120, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/convert.py", line 902, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/convert.py", line 988, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/convert.py", line 854, in parse
    self._tags[rec.tag](self.cr, rec, n, mode=mode)
  File "/var/tmp/openupgrade/8.0/server/openerp/tools/convert.py", line 768, in _tag_record
    id = self.pool['ir.model.data']._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/addons/base/ir/ir_model.py", line 1064, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/addons/base/res/res_users.py", line 714, in create
    self.update_user_groups_view(cr, uid, context)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/addons/base/res/res_users.py", line 755, in update_user_groups_view
    view.write({'arch': xml_content})
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 235, in wrapper
    return new_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 552, in new_api
    result = method(self._model, cr, uid, self.ids, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/addons/base/ir/ir_ui_view.py", line 282, in write
    context)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 237, in wrapper
    return old_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 360, in old_api
    result = method(recs, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/models.py", line 3692, in write
    self._write(old_vals)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 235, in wrapper
    return new_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 552, in new_api
    result = method(self._model, cr, uid, self.ids, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/models.py", line 3854, in _write
    recs._validate_fields(vals)
  File "/var/tmp/openupgrade/8.0/server/openerp/api.py", line 235, in wrapper
    return new_api(self, *args, **kwargs)
  File "/var/tmp/openupgrade/8.0/server/openerp/models.py", line 1297, in _validate_fields
    raise ValidationError('\n'.join(errors))
ParseError: "ValidateError
Field(s) `arch` failed against a constraint: Invalid view definition

Error details:
Field `menu_id` does not exist

Error context:
View `res.users.groups`
[view_id: 159, xml_id: base.user_groups_view, model: res.users, parent_id: 156]" while parsing /var/tmp/openupgrade/8.0/server/openerp/addons/base/base_data.xml:88, near
<record id="group_portal" model="res.groups">
            <field name="name">Portal</field>
            <field name="comment">Portal members have specific access rights (such as record rules and restricted menus).
                They usually do not belong to the usual OpenERP groups.</field>
        </record>
2014-10-06 11:06:57,616 8968 INFO virus_copy_migrated openerp.service.server: Initiating shutdown
2014-10-06 11:06:57,616 8968 INFO virus_copy_migrated openerp.service.server: Hit CTRL-C again or send a second signal to force the shutdown.


2014-10-03 16:14 GMT+03:00 George Mengelberg <george-mengelberg-gmail-com@mail.odoo.com>:

I would focus on what in the script is trying to convert the datatypes: 2014-10-03 12:23:47,481 1646 ERROR virus_migrated openerp.sql_db: bad query: ALTER TABLE "ir_attachment" ALTER COLUMN "datas_fname" TYPE VARCHAR Traceback (most recent call last): File "/var/tmp/openupgrade/8.0/server/openerp/sql_db.py", line 234, in execute res = self._obj.execute(query, params) NotSupportedError: cannot alter type of a column used by a view or rule DETAIL: rule _RETURN on view report_document_user depends on column "datas_fname"

--
George Mengelberg
Sent by OpenERP S.A. using Odoo about Forum Post False