Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

odoo12数据迁移问题



  • odoo12数据迁移问题

    之前是使用源码安装的odoo12,安装在LINODE 10美元/月的VPS上,已经运行了一年了,现在想把这套系统迁移到国内的服务器上,不打算使用源码安装,因为我们的系统非常简单,就是在官方的基础上安装一套MUK后端主题,使用官方的docker-compose.yml一键运行odoo12非常简单,yml文件如下

    version: '2'
    services:
      web:
        image: odoo:12.0
        depends_on:
          - db
        ports:
          - "8069:8069"
        volumes:
          - odoo-web-data:/var/lib/odoo
          - ./config:/etc/odoo
          - ./addons:/mnt/extra-addons
      db:
        image: postgres:10
        environment:
          - POSTGRES_DB=postgres
          - POSTGRES_PASSWORD=odoo
          - POSTGRES_USER=odoo
          - PGDATA=/var/lib/postgresql/data/pgdata
        volumes:
          - odoo-db-data:/var/lib/postgresql/data/pgdata
    volumes:
      odoo-web-data:
      odoo-db-data:
    

    之后把MUK后端主题的文件上传到 ./addons,新建一个数据库,安装MUK主题完全正常,退出新建的数据为并删除它,在原来的系统上导到备份恢复到新系统上,在恢复的时候提示如下错误

    web_1  | 2019-12-10 08:19:59,857 1 ERROR md odoo.modules.graph: module muk_web_theme: Unmet dependencies: muk_web_utils
    web_1  | 2019-12-10 08:19:59,857 1 ERROR md odoo.modules.graph: module muk_web_utils: Unmet dependencies: muk_autovacuum
    db_1   | 2019-12-10 08:20:17.140 UTC [147] ERROR:  could not obtain lock on row in relation "ir_cron"
    
    
    

    恢复后可以看到恢复的数据库,尝试登陆日志会报如下错误

    web_1  | 2019-12-10 08:21:16,554 1 ERROR md werkzeug: Error on request:
    
    

    前台显示

    500 Internal Server Error
    The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
    
    

    请问怎么解决这个问题以正常迁移?


  • 管理员

    @weih87odoo12数据迁移问题 中说:

    muk_web_utils
    muk_autovacuum

    错误信息里提到的这两个模块有传到./addons目录下吗?



  • @digitalsatori 有的,这个主题包含的四个组件都已经上传到./addons文件夹


  • 管理员

    估计是你迁移前的addons路径和迁移后addons路径不一致造成的。
    如果你进入“开发者模式”,然后点击“更新模块列表”,是不是会有2组名字一样的muk相关的apps。重新安装下应该就可以了。



  • @digitalsatori 新服务器导入数据库之后都无法登陆,一登陆就显示500错误,无法进入开发者模式。。。


  • 管理员

    可以在odoo的启动参数里重新初始化你的muk-theme,

    odoo-bin -d YourDB -i muk-theme
    

    把YourDB替换你的数据库名称, muk-theme替换为实际的主题addon名称



  • @digitalsatori 在docker里怎么执行这行命令呢?


  • 管理员

    试试下面这样:

    docker-compose run --rm web odoo -d YourDB -i muk-theme --addons-path=/mnt/extra-addons
    


  • @digitalsatori 运行之后没有报错,更新:还是会报错,前面是数据库名弄错新建了个数据库才导致的无报错。
    而且无法访问,似乎是8069端口没有映射出来?
    以下是运行之后的日志

    [email protected]:~/odoo# docker-compose run --rm web odoo -d md2 -i muk_web_theme
    Starting odoo_db_1 ...
    Starting odoo_db_1 ... done
    2019-12-11 06:27:17,227 1 INFO ? odoo: Odoo version 12.0-20191106
    2019-12-11 06:27:17,228 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
    2019-12-11 06:27:17,229 1 INFO ? odoo: addons paths: ['/var/lib/odoo/addons/12.0', '/opt/odoo/addons', '/usr/lib/python3/dist-packages/odoo/addons']
    2019-12-11 06:27:17,231 1 INFO ? odoo: database: [email protected]:5432
    2019-12-11 06:27:17,434 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
    2019-12-11 06:27:17,667 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on e8c6a7336a19:8069
    2019-12-11 06:27:17,695 1 INFO md2 odoo.modules.loading: loading 1 modules...
    2019-12-11 06:27:17,720 1 INFO md2 odoo.modules.loading: 1 modules loaded in 0.02s, 0 queries
    2019-12-11 06:27:17,893 1 INFO md2 odoo.modules.loading: updating modules list
    2019-12-11 06:27:17,901 1 INFO md2 odoo.addons.base.models.ir_module: ALLOW access to module.update_list on [] to user __system__ #1 via n/a
    2019-12-11 06:27:18,910 1 ERROR md2 odoo.modules.graph: module muk_web_theme: Unmet dependencies: muk_web_utils
    2019-12-11 06:27:18,910 1 ERROR md2 odoo.modules.graph: module muk_web_utils: Unmet dependencies: muk_autovacuum
    2019-12-11 06:27:18,911 1 INFO md2 odoo.modules.loading: loading 62 modules...
    2019-12-11 06:27:19,860 1 INFO md2 odoo.modules.loading: 62 modules loaded in 0.95s, 0 queries
    2019-12-11 06:27:21,240 1 INFO md2 odoo.modules.loading: Modules loaded.
    
    
    

  • 管理员

    之前的命令里漏了addons-path你再试试



  • @digitalsatori 路径已经被我修改成和之前的服务器一样的路径 /opt/odoo/addons 了,执行这条命令日志输出如下

    [email protected]:~/odoo# docker-compose run --rm web odoo -d md2 -i muk_web_theme --addons-path=/opt/odoo/addons
    Starting odoo_db_1 ... done
    2019-12-11 06:39:29,342 1 INFO ? odoo: Odoo version 12.0-20191106
    2019-12-11 06:39:29,343 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
    2019-12-11 06:39:29,343 1 INFO ? odoo: addons paths: ['/var/lib/odoo/addons/12.0', '/opt/odoo/addons', '/usr/lib/python3/dist-packages/odoo/addons']
    2019-12-11 06:39:29,344 1 INFO ? odoo: database: [email protected]:5432
    2019-12-11 06:39:29,521 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
    2019-12-11 06:39:29,761 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on 744949dbcdd6:8069
    2019-12-11 06:39:29,781 1 INFO md2 odoo.modules.loading: loading 1 modules...
    2019-12-11 06:39:29,810 1 INFO md2 odoo.modules.loading: 1 modules loaded in 0.03s, 0 queries
    2019-12-11 06:39:29,971 1 INFO md2 odoo.modules.loading: updating modules list
    2019-12-11 06:39:29,976 1 INFO md2 odoo.addons.base.models.ir_module: ALLOW access to module.update_list on [] to user __system__ #1 via n/a
    2019-12-11 06:39:31,021 1 ERROR md2 odoo.modules.graph: module muk_web_theme: Unmet dependencies: muk_web_utils
    2019-12-11 06:39:31,022 1 ERROR md2 odoo.modules.graph: module muk_web_utils: Unmet dependencies: muk_autovacuum
    2019-12-11 06:39:31,023 1 INFO md2 odoo.modules.loading: loading 62 modules...
    2019-12-11 06:39:32,017 1 INFO md2 odoo.modules.loading: 62 modules loaded in 0.99s, 0 queries
    2019-12-11 06:39:33,424 1 INFO md2 odoo.modules.loading: Modules loaded.
    
    

  • 管理员

    这样执行命令是不对的,因为在你的docker-compose.yml文件中是这样定义的:

    volumes:
          - odoo-web-data:/var/lib/odoo
          - ./config:/etc/odoo
          - ./addons:/mnt/extra-addons
    

    所以你的muk-xxx这些外部addon是放在docker 目录下addons子目录中然后映射到docker的/mnt/extra-addons目录的
    所以docker中的Odoo需要指定一个addons目录指向/mnt/extra-addons



  • @digitalsatori docker-compose.yml文件已经改了

    [email protected]:~/odoo# cat docker-compose.yml
    version: '2'
    services:
      web:
        image: odoo:12.0
        depends_on:
          - db
        ports:
          - "8069:8069"
        volumes:
          - odoo-web-data:/var/lib/odoo
          - ./config:/etc/odoo
          - ./addons:/opt/odoo/addons
      db:
        image: postgres:10
        environment:
          - POSTGRES_DB=postgres
          - POSTGRES_PASSWORD=odoo
          - POSTGRES_USER=odoo
          - PGDATA=/var/lib/postgresql/data/pgdata
        volumes:
          - odoo-db-data:/var/lib/postgresql/data/pgdata
    volumes:
      odoo-web-data:
      odoo-db-data:
    

    odoo.conf文件也一并修改

    [email protected]:~/odoo# cat ./config/odoo.conf
    [options]
    addons_path = /opt/odoo/addons
    data_dir = /var/lib/odoo
    admin_passwd = adminpassword
    
    

    这样应该没问题吧?还是全部修改成和之前一样再试试?



  • 全部改回来了,结果一样😧

    [email protected]:~/odoo# docker-compose run --rm web odoo -d md2 -i muk_web_theme --addons-path=/mnt/extra-addons
    Starting odoo_db_1 ...
    Starting odoo_db_1 ... done
    2019-12-11 07:08:51,785 1 INFO ? odoo: Odoo version 12.0-20191106
    2019-12-11 07:08:51,786 1 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf
    2019-12-11 07:08:51,788 1 INFO ? odoo: addons paths: ['/var/lib/odoo/addons/12.0', '/mnt/extra-addons', '/usr/lib/python3/dist-packages/odoo/addons']
    2019-12-11 07:08:51,789 1 INFO ? odoo: database: [email protected]:5432
    2019-12-11 07:08:51,983 1 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf
    2019-12-11 07:08:52,217 1 INFO ? odoo.service.server: HTTP service (werkzeug) running on 32e8ca14f02d:8069
    2019-12-11 07:08:52,253 1 INFO md2 odoo.modules.loading: loading 1 modules...
    2019-12-11 07:08:52,286 1 INFO md2 odoo.modules.loading: 1 modules loaded in 0.03s, 0 queries
    2019-12-11 07:08:52,489 1 INFO md2 odoo.modules.loading: updating modules list
    2019-12-11 07:08:52,497 1 INFO md2 odoo.addons.base.models.ir_module: ALLOW access to module.update_list on [] to user __system__ #1 via n/a
    2019-12-11 07:08:53,613 1 ERROR md2 odoo.modules.graph: module muk_web_utils: Unmet dependencies: muk_autovacuum
    2019-12-11 07:08:53,614 1 ERROR md2 odoo.modules.graph: module muk_web_theme: Unmet dependencies: muk_web_utils
    2019-12-11 07:08:53,615 1 INFO md2 odoo.modules.loading: loading 62 modules...
    2019-12-11 07:08:54,556 1 INFO md2 odoo.modules.loading: 62 modules loaded in 0.94s, 0 queries
    2019-12-11 07:08:56,019 1 INFO md2 odoo.modules.loading: Modules loaded.
    
    

  • 管理员

    虽然仍然有dependencies的报错,但是系统看起来是正常的启动状态啊,访问系统显示什么?



  • @digitalsatori 无法访问,似乎8069端口没有进行映射


  • 管理员

    我怀疑你之前的docker没有停掉,又用docker-compose新启了容器。

    docker ps
    

    看一下,多个容器都对外映射8069端口就冲突了嘛
    你可以用

    docker-compose down
    

    docker rm xxxx
    

    来干掉容器,确保docker ps 下没有运行中的容器了,再用之前的命令行启动



  • 运行此行命令之前我已经使用 docker-compose stop 停止在运行的容器了
    运行此命令之后看容器的运行情况如下

    [email protected]:~# docker ps -a
    CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                   PORTS                NAMES
    750e72e9ce65        odoo:12.0           "/entrypoint.sh odoo…"   9 seconds ago       Up 7 seconds             8069/tcp, 8071/tcp   odoo_web_run_1
    bc78100efb3b        odoo:12.0           "/entrypoint.sh odoo"    6 hours ago         Exited (0) 3 hours ago                        odoo_web_1
    6d31bedbe487        postgres:10         "docker-entrypoint.s…"   5 days ago          Up 9 seconds             5432/tcp             odoo_db_1
    
    

  • 管理员

    第一个运行中的docker确实没有端口映射出来。
    如果猜得没错的话,你运行那个命令并没有在docker-compose.yml文件所在的目录下运行,所以该文件所定义的端口映射没有起作用。



  • @digitalsatori 确定工作目录是在docker-compose.yml所在的文件件,如果在别的路径以上命令根本无法运行。

    [email protected]:~# docker-compose run --rm web odoo -d md2 -i muk_web_theme --addons-path=/mnt/extra-addons
    ERROR:
            Can't find a suitable configuration file in this directory or any
            parent. Are you in the right directory?
    
            Supported filenames: docker-compose.yml, docker-compose.yaml
    
    

    之前我贴出来的日志都有带路径的,你可以看下,我的工作目录是~/odoo


Log in to reply