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

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

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

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

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

odoo12数据迁移问题



  • 运行此行命令之前我已经使用 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



  • 看来我得认真看下docker的入门教程了,我现在只是知道怎么启动停止新建及删除而已,单单知道这些知识储备太不足了,稍稍遇到个问题就无法解决。。。


  • 管理员

    哈哈,回答你的问题也让我学到了:https://github.com/docker/compose/issues/1259

    docker-compose run命令竟然是不理会docker-compose.yml文件中的ports设定的,如果需要强制映射,需要加参数 --service-ports
    所以你的命令就应该是:

    docker-compose run --rm --service-ports web odoo -d md2 -i muk_web_theme --addons-path=/mnt/extra-addons
    


  • @digitalsatoriodoo12数据迁移问题 中说:

    docker-compose run --rm --service-ports web odoo -d md2 -i muk_web_theme --addons-path=/mnt/extra-addons

    可以访问了,和之前的问题一样,启动时日志提示错误,两个未知依赖项muk_web_utilsmuk_autovacuum,前台访问后日志显示登陆成功,之后再报一个错误 ERROR md2 werkzeug: Error on request:

    完整的日志如下

    [email protected]:~/odoo# docker-compose run --rm --service-ports web odoo -d md2 -i muk_web_theme --addons-path=/mnt/extra-addons | grep ERROR
    Starting odoo_db_1 ...
    Starting odoo_db_1 ... done
    2019-12-12 05:55:30,117 1 ERROR md2 odoo.modules.graph: module muk_web_theme: Unmet dependencies: muk_web_utils
    2019-12-12 05:55:30,117 1 ERROR md2 odoo.modules.graph: module muk_web_utils: Unmet dependencies: muk_autovacuum
    2019-12-12 05:55:41,807 1 ERROR md2 werkzeug: Error on request:
    
    

  • 管理员

    你没有贴全错误日志,错误日志最重要的是最后面若干行的内容。

    如果确实是这个启动不成功的模块导致的,你可以先在原来的环境里卸载模块然后再将数据库恢复到docker的环境里。确保能登录系统了,再来看是否能再次安装该模块。

    另外,docker-compose run命令是一个用于调试的临时启动container的命令,后面的--rm确保在退出时可以把该命令生成的container删除。

    你其实可以用docker-compose up -d 正常启动container, 然后使用命令

    docker exec -ti odoo_web_run_1 /bin/bash
    

    其中odoo_web_run_1是你已启动的container的名字

    上述命令之后,你就在container里了,你可以和原来不用container时一样来调试odoo,

    比如查看一下/mnt/extra_addons目录是否存在,里面是否有你的模块,查看一下文件/文件夹权限是否正确,
    也可以用psql连接到数据库,比如:

    psql -hdb -Uodoo -dYourDBName
    

    访问数据库



  • @digitalsatori docker exec -it odoo_web_1 bash这个命令之前已经运行过了,进入container执行 ls /mnt/extra-addons是能看到我放进去的文件的,新建数据库也能正确安装这个主题。
    至于直接操作数据库。。。知识储备不足,不知道怎么弄。。。



  • 问题解决了,直接把原来的机器上的addons文件夹打包复制到新机器上,再导入就成功了。
    原先一直是去odoo的插件网上下载muk主题文件下来放到新机器上的,估计是主题的版本不一样导致了这样的问题。
    另外我成功导到数据库之后,登陆上去后把新的主题文件覆盖旧主题文件,再在应用里选择升级就会导致整个损坏,报500错误,不知道是怎么回事,但这个是小问题,算了,不管它了。


  • 管理员

    很高兴你的问题能解决。跟你沟通很愉快👍

    500的错误是nginx报的吧。还是要看后台的log。因为是主题,可能的原因是attachment路径的问题,主题中asset的路径是作为attachment保存在数据库中的。

    如果你知道如何访问Odoo的数据库,你可以用命令:

    delete from ir_attachment where name like '/web/content/%';
    

    然后重新更新web模块。请先备份再尝试。


Log in to reply