如何在Windows8中同时运行Odoo-10与Odoo-11服务并解决冲突?
解决Odoo 10与Odoo 11在Windows 8上的并行运行冲突
我来帮你搞定这个版本冲突的问题——你遇到的Skipping database pos10 as its base version is not 11.0.1.3报错,本质是Odoo启动时会扫描PostgreSQL中所有可见数据库,再加上当前的dbfilter规则不够严谨,导致Odoo 11误扫到了Odoo 10的数据库。按照下面的步骤调整配置,就能实现两个版本同时正常运行:
1. 严格限定数据库过滤规则
你当前的dbfilter写法太宽松,比如dbfilter=odoo11会匹配所有包含odoo11的数据库,反而容易扫到其他库。改成精确匹配的正则表达式,让每个Odoo实例只加载自己的数据库:
- 编辑Odoo 11的
odoo.conf:dbfilter = ^odoo11$ - 编辑Odoo 10的
odoo.conf:
注:dbfilter = ^odoo10$^和$是正则的开始和结束标记,确保只有完全匹配名称的数据库才会被加载。
2. 隔离PostgreSQL用户的数据库权限
你已经为两个版本创建了独立的PG用户(openpg和openpg1),接下来要确保每个用户只能访问对应版本的数据库,从根源上避免跨版本扫描:
- 打开PostgreSQL的命令行工具(psql),用超级用户
postgres登录:psql -U postgres - 撤销
openpg对Odoo 10数据库的访问权限:REVOKE ALL PRIVILEGES ON DATABASE odoo10 FROM openpg; - 撤销
openpg1对Odoo 11数据库的访问权限:
这样每个Odoo实例的PG用户只能看到自己有权限的数据库,不会再扫到其他版本的库。REVOKE ALL PRIVILEGES ON DATABASE odoo11 FROM openpg1;
3. 修正配置文件的细节问题
检查你的Odoo 11配置,addons_path里有多余的空格(d: \ odoo \ addons),这可能导致加载插件出错,改成:
addons_path = D:\odoo\addons
另外,建议给两个实例分别指定独立的日志文件,避免日志混淆:
- Odoo 11添加:
logfile = D:\odoo\logs\odoo11.log - Odoo 10添加:
logfile = D:\odoo-10.0\logs\odoo10.log
4. 重启并验证
关闭正在运行的两个Odoo实例,先启动Odoo 10确认正常运行,再启动Odoo 11。此时检查控制台日志:
- Odoo 11的日志里不会再出现关于
pos10或Odoo 10数据库的报错 - 两个实例都能正常打开登录页,且只显示对应版本的数据库
内容的提问来源于stack exchange,提问作者Hassan ALi
相关产品推荐
相关产品推荐

