1

我一直在使用 OpenERP 6 OK 并决定升级到版本 7。

我从http://nightly.openerp.com/trunk/nightly/deb/下载了 openerp_7.0alpha-20121206-000102-1_all.deb并安装了它。现在,当我浏览到http://localhost:8069我无法再选择数据库时(因为当有一个数据库时,没有理由显示选择器),登录后我得到:

OpenERP Server Error
Client Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/http.py", line 195, in dispatch
    response["result"] = method(self, **self.params)
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py", line 833, in authenticate
    req.session.authenticate(db, login, password, env)
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 113, in authenticate
    uid = self.proxy('common').authenticate(db, login, password, env)
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 28, in proxy_method
    result = self.session.send(self.service_name, method, *args)
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 101, in send
    raise xmlrpclib.Fault(openerp.tools.exception_to_unicode(e), formatted_info)


Server Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py", line 87, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/usr/lib/pymodules/python2.7/openerp/netsvc.py", line 361, in dispatch_rpc
    result = ExportService.getService(service_name).dispatch(method, params)
  File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 413, in dispatch
    return fn(*params)
  File "/usr/lib/pymodules/python2.7/openerp/service/web_services.py", line 424, in exp_authenticate
    res_users = pooler.get_pool(db).get('res.users')
  File "/usr/lib/pymodules/python2.7/openerp/pooler.py", line 50, in get_pool
    return get_db_and_pool(db_name, force_demo, status, update_module)[1]
  File "/usr/lib/pymodules/python2.7/openerp/pooler.py", line 33, in get_db_and_pool
    registry = RegistryManager.get(db_name, force_demo, status, update_module, pooljobs)
  File "/usr/lib/pymodules/python2.7/openerp/modules/registry.py", line 156, in get
    update_module, pooljobs)
  File "/usr/lib/pymodules/python2.7/openerp/modules/registry.py", line 178, in new
    openerp.modules.load_modules(registry.db, force_demo, status, update_module)
  File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 296, in load_modules
    loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=(not update_module), report=report)
  File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 164, in load_module_graph
    init_module_models(cr, package.name, models)
  File "/usr/lib/pymodules/python2.7/openerp/modules/module.py", line 373, in init_module_models
    result = obj._auto_init(cr, {'module': module_name})
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 3211, in _auto_init
    self._add_sql_constraints(cr)
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 3350, in _add_sql_constraints
    self._save_constraint(cr, conname, 'u')
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 2859, in _save_constraint
    """, (constraint_name, self._module))
  File "/usr/lib/pymodules/python2.7/openerp/sql_db.py", line 162, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/openerp/sql_db.py", line 227, in execute
    res = self._obj.execute(query, params)
ProgrammingError: relation "ir_model_constraint" does not exist
LINE 2:             SELECT 1 FROM ir_model_constraint, ir_module_mod...
                                  ^

所以我尝试手动运行它,例如:

sudo openerp-server stop
su - openerp
openerp-server -d openerp1 -u all

我得到

2012-12-07 07:00:43,417 7584 ERROR openerp1 openerp: Failed to initialize database `openerp1`.
Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.7/openerp/cli/server.py", line 97, in preload_registry
    db, registry = openerp.pooler.get_db_and_pool(dbname, update_module=openerp.tools.config['init'] or openerp.tools.config['update'], pooljobs=False)
  File "/usr/lib/pymodules/python2.7/openerp/pooler.py", line 33, in get_db_and_pool
    registry = RegistryManager.get(db_name, force_demo, status, update_module, pooljobs)
  File "/usr/lib/pymodules/python2.7/openerp/modules/registry.py", line 156, in get
    update_module, pooljobs)
  File "/usr/lib/pymodules/python2.7/openerp/modules/registry.py", line 178, in new
    openerp.modules.load_modules(registry.db, force_demo, status, update_module)
  File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 296, in load_modules
    loaded_modules, processed_modules = load_module_graph(cr, graph, status, perform_checks=(not update_module), report=report)
  File "/usr/lib/pymodules/python2.7/openerp/modules/loading.py", line 164, in load_module_graph
    init_module_models(cr, package.name, models)
  File "/usr/lib/pymodules/python2.7/openerp/modules/module.py", line 373, in init_module_models
    result = obj._auto_init(cr, {'module': module_name})
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 3211, in _auto_init
    self._add_sql_constraints(cr)
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 3350, in _add_sql_constraints
    self._save_constraint(cr, conname, 'u')
  File "/usr/lib/pymodules/python2.7/openerp/osv/orm.py", line 2859, in _save_constraint
    """, (constraint_name, self._module))
  File "/usr/lib/pymodules/python2.7/openerp/sql_db.py", line 162, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/lib/pymodules/python2.7/openerp/sql_db.py", line 227, in execute
    res = self._obj.execute(query, params)
ProgrammingError: relation "ir_model_constraint" does not exist
LINE 2:             SELECT 1 FROM ir_model_constraint, ir_module_mod...

我可以做什么,或者我应该做什么来升级?

4

2 回答 2

3

目前没有从 OpenERP 6.0 到 7.0 的免费升级机制。OpenERP SA 通过销售商业升级解决方案谋生,如果您与他们签订年度支持合同,您将获得相当大的折扣。

使用 -u all 可能会尝试升级您的数据库架构,但不会迁移您的数据(即,如果重命名列,您不会将数据从旧列移动到新列),并且视图不会被迁移:具有相同 XML id 的新视图替换旧视图,创建新视图,旧视图仍然存在,可能引用不再存在的字段。基本上你的数据库现在完全是一团糟,希望你有一个备份可以用来继续运行 v 6.0。

于 2012-12-10T08:55:37.167 回答
2

您是否也在同一台机器上安装了 V6.1?

当您混合旧版本模块和新模块时会发生此错误。

我建议安装一个虚拟机并在上面重试,如果我是正确的,你可以卸载包,删除与包相关的所有文件(模块)并重新安装。

如果您需要将数据库修复到旧版本,请重新安装 6.1 或 6.0 并使用参数 -u all -d nameofdb 启动您的服务器。

问候。

于 2012-12-08T04:56:35.690 回答