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.
请问怎么解决这个问题以正常迁移?
-
-
@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端口没有映射出来?
以下是运行之后的日志root@v-1:~/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: odoo@db: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
了,执行这条命令日志输出如下root@v-1:~/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: odoo@db: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文件已经改了
root@v-1:~/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文件也一并修改
root@v-1:~/odoo# cat ./config/odoo.conf [options] addons_path = /opt/odoo/addons data_dir = /var/lib/odoo admin_passwd = adminpassword
这样应该没问题吧?还是全部修改成和之前一样再试试?
-
全部改回来了,结果一样
root@v-1:~/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: odoo@db: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
停止在运行的容器了
运行此命令之后看容器的运行情况如下root@v-1:~# 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所在的文件件,如果在别的路径以上命令根本无法运行。
root@v-1:~# 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