Odoo v10.0版本迁移指南

1. 说明


Odoo是python语言开发的一个开源的ERP系统。
目前,我们工作中用到的也只有休假这一个模块。

2. 原服务情况


  • 服务
  • Odoo v10.0_20170303
  • postgresql v9.2
  • 目录
  • /usr/lib/python2.7/site-packages/odoo #Odoo运行的所有服务端代码存放位置
  • /var/lib/odoo #Odoo的数据存储位置
  • /etc/odoo/odoo.conf #Odoo的服务端配置文件
  • OS
  • CentOS 7.2

3. 备份


大致了解了原服务器的大致信息后,我们就开始备份数据。有一点很重要,我们为了确保数据的完整,一定要先停掉服务,然后再做备份的操作。

  • Odoo

/var/lib/odoo目录下有三个目录addonsfilestoresessions。addons目录默认是空的,实际的文件都在/usr/lib/python2.7/site-package/odoo/addons这个目录下面的。filestore是Odoo用来存放附件的目录,这个必须做一个备份才行。sessions是Odoo用来存放用户会话信息的目录,对于迁移后的新服务器来说没什么用,所以不需要做备份。

~]# tar zcvf Odoo_install.tar.gz /usr/lib/python2.7/site-packages/odoo /usr/lib/python2.7/site-packages/odooodoo-10.0_20170303-py2.7.egg-info #备份python程序部分
~]# tar zcfv Odoo_alldata.tar.gz /var/lib/odoo/filestore/oadbadmin  #备份Odoo数据部分的附件部分
  • Postgresql
~]$ pg_dump -U postgres oadbdmin -f Odoo_postgres_data.sql #备份postgresql数据

4. Odoo及postgresql安装


原来的数据都备份完成了,接下来我们就要开始新服务器的部署配置工作了。我们先列出来Odoo对硬件的要求。从官方文档中没找到,但是官方论坛里面有人贴出来了,链接地址:https://www.odoo.com/zh_CN/forum/help-1/question/server-requirements-121217,我把内容也贴出来吧。

  • Minimum Server Specification:
    Processor = Intel (64 bit)
    Number of Processors = 1
    Processor Core available = 6
    Memory = 8 Gigabyte
    OS = Ubuntu 14.04 LTS

  • Recommended server:
    Processor = Intel (64 bit)
    Number of Processors = 2
    Processor core available = 8
    Memory = 16 Gigabyte
    OS = Ubuntu 14.04
    HDD = Up to client

本次我们使用的操作系统为CentOS7.2,主要是为了减少与原来系统的差异。

  • Postgresql安装

CentOS的自带yum源中包含postgresql相关的软件包,可以直接安装。

$ sudo yum install -y postgresql-server  #安装postgresql的服务端
$ sudo postgresql-setup initdb #postgresql初始化,包括创建数据目录、生成共享目录表以及创建template1和postgresql数据库,该操作不能使用root用户
$ sudo systemctl enable postgresql  #启用开机启动postgresql功能
$ sudo systemctl start postgresql #启动postgresql服务
  • Odoo安装

在CentOS系统上安装Odoo,有很多的依赖是自带的yum源所没有的,所以我们还需要安装EPEL的源,EPEL源中所没有的依赖部分会在文末列出来。
官方的yum源每天都会有一个新的滚动版本发布,为了更贴近原有服务器的odoo版本,我们采用rpm包的方式安装,官方仓库中已经没有20170303的版本了,所以这里我们使用20170401的版本。

~]# wget http://nightly.odoo.com/10.0/nightly/rpm/odoo_10.0.20170401.noarch.rpm
~]# yum install odoo_10.0.20170401.noarch.rpm

官方步骤如下:

$ sudo yum install yum-utils #yum包管理工具
$ sudo yum-config-manager --add-repo=https://nightly.odoo.com/10.0/nightly/rpm/odoo.repo #添加odoo的yum源
$ sudo yum install -y odoo
$ sudo systemctl enable odoo
$ sudo systemctl start odoo
  • 配置

本次主要是系统迁移,就不需要像新安装Odoo的步骤一样了。

(1). 我们需要把原系统的Odoo的配置文件放到新的服务器的/etc/odoo/odoo.conf目录下,覆盖安装时自动生成的配置文件。
(2). 删除现有的Odoo服务器端程序

~]# rm -rf /usr/lib/python2.7/site-packages/odoo/*

(3). 将之前备份的Odoo_install.tar.gzOdoo_alldata.tar.gz上传到新服务器上,然后解压到对应的位置。

~]# tar xvf Odoo_install.tar.gz -C /
~]# tar xvf Odoo_alldata.tar.gz -C /

(4). 重启Odoo

~]#systemctl restart odoo

(5). 数据库恢复
Odoo安装时会自动创建odoo用户,现在我们需要对数据库进行一些操作了。操作数据库我们需要切换用户到postgres,然后执行psql就会进入数据库。

postgres=# CREATE DATABASE oadbadmin; #创建odoo要使用的数据库
postgres=# ALTER DATABASE oadbadmin OWNER TO odoo; #修改oadbadmin数据库的owner为odoo

数据库的基本操作结束了,现在我们就要把之前备份的数据库导入到新的数据库中,与上面操作一样需要使用postgres用户来操作。

~]$ psql -U postgres -d oadbadmin -f Odoo_postgres_data.sql

5. 访问


Odoo和postgresql都准备好了,这下我们就可以来访问Odoo的页面了。
访问链接为: http://new_server's ip:8069,系统会自动跳转到登录页面,我们使用管理员用户登录系统(和操作原有系统一模一样)。
至此,Odoo基本OK了,但是还有一点点问题,在Odoo原来的配置中我们使用了OpenLDAP来做用户统一认证。原有的OpenLDAP也做了迁移,所以我们需要把这个部分也做相应的修改,我们在设置通用设置中进行LDAP认证的修改。

6. LDAP配置


10.0版本的ldap配置项如下图所示。


Odoo v10.0版本迁移指南_第1张图片
openldap
  • LDAP服务器地址
    这个就是指的提供ldap信息验证的服务所在服务器的IP地址,也可以是域名,但是需要在odoo服务端配置好dns服务器,否则无法解析域名。
  • LDAP服务器端口
    与上面提供的ldap服务相关的服务端口号,openLDAP默认389端口。
  • LDAP绑定DN
    这个账号是用来和ldap服务进行数据交互使用的,一般使用管理员的账号。
  • LDAP密码
    与上面的用户对应的密码
  • LDAP基节点
    这个代表我们需要搜索的用户所在的域,或者一个用户组,如果不做限制就用dc=xx,dc=xx这样的,做限制的话,类似ou=xxx,dc=xx,dc=xx
  • LDAP筛选
    这个选项代表的意思是我们使用ldap服务返回的那个字段来用作odoo用户的用户名(登录名),我们这里使用uid,也有很多使用mail。
  • 创建用户
    这个选项代表,在ldap中创建用户后,我们第一次在odoo中登录时,odoo系统会去ldap系统查找是否存在该用户,如果存在就会在odoo中创建该用户,并登录,但是这个版本会报500的服务器错误,服务器日志的打印是记录不存在或者已删除 ,这种情况下odoo就会创建该系统用户。
  • 模板用户
    该选项可以使用户在odoo中第一次登录的时候按照该用户的信息模板进行新用户的创建,包括邮件、手机号、权限等。这样的话,在odoo用户第二次登录的时候就可以正常进入系统(必须授予访问权限)。
  • 序号
    默认值即可,也可以改下一些。
  • 使用TLS传输层套接字
    如果服务端启用的话,可以勾选。

附1

Odoo特殊依赖列表

  • http://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/python-docutils-0.11-0.3.20130715svn7687.el7.noarch.rpm
  • http://mirror.centos.org/centos/7/os/x86_64/Packages/http-parser-2.7.1-5.el7_4.x86_64.rpm
  • ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/7/x86_64/debug/Packages/t/tcpflow-debuginfo-1.4.5-1.el7.x86_64.rpm
  • http://ftp.altlinux.org/pub/distributions/ALTLinux/Sisyphus/noarch/RPMS.classic//python-module-antlr-2.7.7-alt12_53jpp8.noarch.rpm
  • http://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/python-jinja2-2.7.2-2.el7.noarch.rpm
  • ftp://bo.mirror.garr.it/1/slc/centos/7.0.1406/extras/x86_64/Packages/python-werkzeug-0.9.1-2.el7.noarch.rpm
  • http://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/libxslt-python-1.1.28-5.el7.x86_64.rpm

你可能感兴趣的:(Odoo v10.0版本迁移指南)