【odoo14】第一章、安装odoo的开发环境

有几种方式去设置odoo的开发环境,咱们将逐个介绍他们。html

若是你以前没有接触过odoo的开发环境,那么有几个必要的概念你是须要了解的。在这一章节中,咱们首先介绍odoo的生态。而后咱们在进行介绍odoo开发环境的安装。python

在这一章节中,咱们主要涉及如下内容。git

  • 理解odoo的生态
  • 源码安装
  • 管理odoo的数据库
  • 存储实例配置
  • 激活odoo开发环境
  • 更新插件列表

1、理解odoo的生态

妞妞为开发者提供了开箱即用的开发模式。这可让开发者很快完成项目建设。github

odoo的版本

妞妞有两个版本,第一个是社区版,也是开源的。第二个是企业版。是须要软件受权的。企业班只是在社区版的基础上增长了一些新的功能。社区版基于LGPLv3协议开源,并集成了基础的ERP应用。企业版是妞妞公司独有的协议。社区版有更强大的功能。好比全套的记帐,开发,以及网络电话等设企业半夜将提供无限制的bug修复。下面这张表格说明了企业版于社区版的关系。
web

Git 存储库

妞妞的源码都是托管在github上。sql

每一年妞妞都会发布。通常主要的版本(Long-Term Support LTS)以及一些小版本。小版本主要使用在SaaS服务上。数据库

Runbot

Runbot是妞妞的自动测试环境。它能够自动拉去github中最新的4次提交,并进行构建。在这,你可使用企业版以及他们的分支。(源码是看不到的)ubuntu

每次构建有不一样的颜色,这表明这测试用例的状况。绿色表明经过,红色表明失败。你能够查看具体的日志。每次构建会有两个数据库,一个是安装了所有模块的数据库,一个是基础数据库。每次构建都会安装一些模拟数据。bash

Note服务器

访问:http://runbot.odoo. com/runbot.

几个基本的帐户

  • admin,admin
  • demo,demo
  • portal,portal

这是一个公开的测试环境,任何人均可以使用。因此说在你测试的时候也有可能其余人也在测试相同的分支。

妞妞的app商城

正如其名,商城,你们上去看看就懂了。

妞妞社区协会

**Odoo Community Association (OCA)**非盈利组织,管理者很多好模块。可是有很多模块都是老版本的了,跟新的版本不必定兼容。若有须要,须要本身修改。地址以下:https://github.com/OCA

官方的帮助论坛

有问题先上论坛,有不少坑其实你们都在踩。https://help.odoo.com.help.odoo.com.

妞妞的在线学习平台

官方的视频教程,访问地址:https://www.odoo.com/slides.


2、源码安装

官方推荐ubuntu,这本书使用的是Ubuntu Server 18.04 LTS版本。

我的的开发环境最好跟生产环境相同,避免很多坑。

准备

Ubuntu 18.0四、管理员帐户

一些配置可能须要帐户名,可经过whoami命令获取用户名。

步骤

  1. 安装依赖
$ sudo apt-get update
$ sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools libpng12-0 libjpeg-dev gdebi -y
  1. 下载安装wkhtmltopdf
$ wget https://github.com/wkhtmltopdf/wkhtmltopdf/ releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64. deb
$ sudo dpkg -i wkhtmltox_0.12.5-1.trusty_amd64.deb
  1. 安装postgresql数据库
$ sudo apt install postgresql -y
  1. 配置PostgresSQL:
$ sudo -u postgres createuser --superuser $(whoami)
  1. 配置git
$ git config --global user.name "Your Name"
$ git config --global user.email youremail@example.com
  1. 下载源码
$ mkdir ~/odoo-dev
$ cd ~/odoo-dev
$ git clone -b 14.0 --single-branch --depth 1 https:// github.com/odoo/odoo.git
  1. 安装odoo14的虚拟环境并激活(我的使用的是pipenv)
$ python3 -m venv ~/venv-odoo-14.0
$ source ~/venv-odoo-14.0/bin/activate
  1. 安装依赖
$ cd ~/odoo-dev/odoo/
$ pip3 install -r requirements.txt
  1. 建立odoo实体
$ createdb odoo-test
$ python3 odoo-bin -d odoo-test –i base --addons- path=addons --db-filter=odoo-test$
  1. 登陆系统http://localhost:8069,帐户名密码设置为admin

工做原理

步骤1,安装核心依赖,用于安装odoo。
步骤2,安装wkhtmltopdf。

PostgreSQL配置

步骤3,安装数据库。

步骤4,建立一个与当前用户相同的用户。-s 是授予用户超级权限。odoo经过psycopg2链接数据库。为了访问数据库,odoo使用以下默认配置:

  • 默认psycopg2经过当前系统用户相同的用户名去链接本地数据库,支持无密码登陆。
  • 本地链接使用的是Unix domain sockets。
  • 数据库默认使用5432端口。

由于咱们使用的是开发环境,所以咱们给用户授予了超级权限。但在生产环境下,要使用 --createdb命令替换--superuser。咱们能够经过--pwprompt参数建立密码。若是用户已存在,可重置密码。

psql -c "alter role $(whoami) with password 'newpassword'"

若是报错说数据库不存在,是咱们再步骤4中没有建立数据库引发的。可经过在步骤4命令的用户名后面添加 --dbname db_1。

Git 配置

经过git,咱们可方便的调整部署的版本。

步骤5,咱们建立git用户。

步骤6,下载最新的源码。用到的命令git clone及--depth 1(可下载一层commit)。

虚拟环境

python虚拟环境是为了不环境污染。

步骤7,咱们在~/venv-odoo-14.0文件夹中建立了python的环境及安装所需的包。咱们可经过source ~/venv-odoo-14.0/bin/activate命令激活虚拟环境。

安装pyhon包

步骤8,安装odoo所需的python包。

启动实体

步骤9,启动实体

odoo-bin所用到的参数

  • -d 指定数据库
  • --db-filter=database_name$: 仅链接database_name$(正则匹配)的数据库。一次安装,可同时启动多个实例(链接不一样的数据库)。这个参数能够限制实体所能使用的数据库。
  • --addons-path=directory1, directory2。这个参数是指定实例所载入的模块路径。
  • -i base:这是为了安装base模块。这是一切的基础哦。

或使用的数据库并非系统登陆帐户,可经过以下参数进行配置。

  • --db_host=IP地址:使用TCP链接数据库服务器。
  • --db_user=database_username:数据库帐户。
  • --db_password=database_password:数据库密码。

其余的参数,可经过 odoo-bin --help参数查看。

当odoo启动了一个空的数据库,odoo将建立运行所需的基础表结构。同时将扫描addons-path目录中可用的模块,并加载到数据库中。默认的帐户密码是admin。

登陆系统http://localhost:8069/,以下截图


管理odoo的数据库

准备

已经在运行的odoo实例

步骤

odoo的数据库管理工具提供了数据库的建立、复制、删除、备份及恢复。还能够数据库管理工具的管理密码,限制非受权用户对数据库的操做。

访问数据库接口

  1. 进入登陆页面
  2. 点击Manager Database连接。将进入/web/database/manager页面。

设置和修改管理工具密码

建立新的数据库

按步骤建立就行,若是点击Continue以后又进入了登陆页面。多是刚刚填写的Database Name不符合以前设置的--db_filter指定的的数据库正则。

复制数据库

有时咱们须要对在用的数据进行测试,可是又不能操做生产库。那么咱们能够将数据库复制一份,在复制的数据库中进行操做。

删除数据库

慎重操做,需输入数据库管理工具的管理密码。

备份数据库

一样须要管理密码。

恢复备份的数据库

按提示操做就行。

原理

管理密码是存储在odoo.conf配置文件中的。
odoo使用PostgreSQL的createdb工具建立新的数据库,并调用odoo内部的函数初始化数据库。
若是想复制数据库,可经过createdb --template 数据名。经过这种方式,比经过页面的上的backup、restore要快不少。
备份和恢复使用的是pg_dump及pg_restore工具。当使用zip的格式的数据库备份时,备份将包含一些文件的副本(在配置odoo时用到但并未存储在数据库中的文档)。这些在odoo14中是默认选项。这些文件默认存储在~/.local/share/odoo/filestore中。
若是备份太大,可能会致使下载失败。odoo没法在内存中处理大文件、http的response设置的过小等都会致使这个问题。一样,restore也同样。

餐后甜点

直接经过命令行操做数据库是很是方便的。
用演示数据初始化新的数据库

$ createdb testdb && odoo-bin -d testdb

咱们还能够同时安装模块,-i sale, purchase, stock
复制数据库,停用服务并启动

$ createdb -T dbname newdbname
$ cd ~/.local/share/Odoo/filestore # adapt if you have changed the data_dir
$ cp -r dbname newdbname
$ cd -

在开发环境的上下文中,文件存储常常被忽略。

命令行createdb -T操做数据库需在数据库没有被使用的状况下哦,也就是复制数据库须要odoo停用的状况下进行。

移除数据库实体,可经过

$ dropdb dbname
$ rm -rf ~/.local/share/Odoo/filestore/dbname

建立备份,假定数据库在本地

$ pg_dump -Fc -f dbname.dump dbname

$ tar cjf dbname.tgz dbname.dump ~/.local/share/Odoo/filestore/ dbname

恢复备份,可经过以下

$ tar xf dbname.tgz
$ pg_restore -C -d dbname dbname.dump

注意!
若是odoo使用不一样的用户链接数据库,那么你须要传参-U username来为恢复的数据库指定拥有者。

存储实例的配置

odoo-bin脚本支持几十个参数的配置,咱们可经过配置文件简化记忆。默认存储在/etc/odoo/odoo.conf中。

步骤

  1. 生成配置文件
$ ./odoo-bin --save --config myodoo.cfg --stop-after-init
  1. 咱们能够指定参数,这些参数的值能够存储在生成的配置文件中。经过以下命令获取参数可能的值
$ ./odoo-bin --help | less
  1. 要从命令行形式转换为配置形式,请使用长选项名,删除开头的破折号,并将中间的破折号转换为下划线。--without-demo变成without_demo。这适用于大多数选项,但也有一些例外状况,将在下面的部分中列出。
  2. 经过配置文件启动实例
$ ./odoo-bin -c odoo.conf

原理

在实例启动的时候,主要经历三个阶段的配置。第一,全部的配置参数经过源代码设置默认值。第二,加载配置文件并覆盖已有配置。第三,命令行传参将再次覆盖已有配置。
大多数命令行参数均可按照上面说的方式在配置文件中找到。可是以下是不规则的变化:

命令行 配置文件
--db-filter dbfilter
--no-http http_enable = True/False
--database db_name
--dev dev_mode
--il8n-import/--il8n-export Unavailabe

下面列出了一些经常使用的配置:

配置 格式 说明
without_demo 模块名s 阻止模块安装延时数据。
all:所有禁用
False:所有开启
列表:sale,purchase
addons_path 模块所在的目录 多个路径,“,”隔开
admin_passwd 文本 主密码
data_dir 数据文件路径 存储session、网上下载的add-ons以及文档
http_port
longpolling_port
数字 在运行多个odoo服务的使用须要指定两个port。
longpolling_port是在workers为非0 的指定。
http_port默认8069,longpolling_port为8072.
logfile 文件路径 odoo的log文件
log_level 日志级别 critical,error,warn,info,debug,debug_rpc, debug_rpc_answer,debug_sql
workers 整数 worker的进程数量。详见第三章服务开发
proxy_mode True/False 激活反向代理WSGI包装器。
仅当运行在可信的web代理后时才启用此功能!

如下是数据库相关的配置

配置 格式 说明
db_host hostname 数据库主机ip
db_user 数据库用户名 若db_host为False,则该项为空。这将使用当前用户链接数据库
db_password 数据库密码
db_name 数据库名 This is used to set the database name on which some commands operate by default. This does not limit the databases on which the server will act. Refer to the following dbfilter option for this.
db_sslmode 数据库的ssl模式 指定数据库的ssl链接模式
dbfilter 正则 匹配odoo实例可访问的数据库,如果运行网站,需精确匹配到一个数据库如^databasename$
list_db True/False 显示或隐藏数据库管理页面。

一些配置文件并不会在配置文件中使用,但在开发模式下普遍使用。

配置 格式 说明
-i or --init 模块名s 使用“模块”初始化数据库
-u or --update 模块名s 更新模块
--dev all,reload,qweb, werkzeug,xml

激活开发者模式

做为odoo的开发者,你须要了解如何激活开发者模式。激活开发者模式以后,能够访问高级的配置以及相映的字段。这些选项一般是隐藏掉的而且在平常到使用过程当中当中并不会用到。

步骤

  1. 用admin帐户登录系统。

  2. 进入配置。

  3. 在最下方能够看到开发者工具。

  4. 点击 激活开发者模式。

  5. 等待页面加载完成。

另一种激活方式
It is also possible to activate the developer mode by editing the URL. Before the # sign, insert ?debug=1.
For example, if your current URL is http://localhost:8069/ web#menu_id=102&action=94 and you want to enable
developer mode, then you need to change that URL to http:// localhost:8069/web?debug=1#menu_id=102&action=94. Furthermore, if you want debug mode with assets, then change the URL
to http://localhost:8069/web?debug=assets#menu_ id=102&action=94.

退出开发者模式

  • 能够直接编辑url,将 ?debug=0。
  • 在页面上选择退出激活模式。
  • 点击页面上方的bug菜单,点击离开开发者模式。
    还有一种更简单的方式是经过插件

小贴士
自odoo13以后,调试模式有所改变。调试模式是存储在sessino中的,即使你移除了url当中的?debug,依旧debug模式。

原理

在开发者模式下会有两个改变

  • 当你把鼠标放在form视图和列表视图相应filed的时候会展现这一个字段的技术信息。
  • 页面的上方会有一个bug的图标菜单,咱们能够访问一些调试工具。
    还有另一种开发者模式-。Developer mode(with assets)。这一个模式下于正常的开发者模式大部分相同,只是多了JavaScript和CSS的相关内容。相应的文件再也不进行压缩,方便调试。

注意!
请在非开发者模式下调试你的应用,不然会可能忽略一些潜在的问题。

更新本地模块列表

当你新建了一个模块儿的时候,妞妞实际上是不知道的,因此须要你进行手动的刷新。

步骤

这里就放两张图

原理

当咱们点击了更新按钮的时候,妞妞会去读取add-ons path中配置的路径中的文件。并查找每个__manifest__.py文件,这里包含着模块的相关信息。若是在文件当中包含installable=False。那么这一个模块儿信息将不会被写入数据库。若是模块已经存在那么会更新相关信息,若是不存在则新建。

小贴士
手动更新主要是在完成数据库初始化以后新增的模块。

# 数据初始化
python3 odoo-bin -d odoo-test -i base --addons-path=addons --db-filter=odoo-test
# 启动
./odoo-bin -c odoo.conf
相关文章
相关标签/搜索