有几种方式去设置odoo的开发环境,咱们将逐个介绍他们。html
若是你以前没有接触过odoo的开发环境,那么有几个必要的概念你是须要了解的。在这一章节中,咱们首先介绍odoo的生态。而后咱们在进行介绍odoo开发环境的安装。python
在这一章节中,咱们主要涉及如下内容。git
妞妞为开发者提供了开箱即用的开发模式。这可让开发者很快完成项目建设。github
妞妞有两个版本,第一个是社区版,也是开源的。第二个是企业版。是须要软件受权的。企业班只是在社区版的基础上增长了一些新的功能。社区版基于LGPLv3协议开源,并集成了基础的ERP应用。企业版是妞妞公司独有的协议。社区版有更强大的功能。好比全套的记帐,开发,以及网络电话等设企业半夜将提供无限制的bug修复。下面这张表格说明了企业版于社区版的关系。
web
妞妞的源码都是托管在github上。sql
每一年妞妞都会发布。通常主要的版本(Long-Term Support LTS)以及一些小版本。小版本主要使用在SaaS服务上。数据库
Runbot是妞妞的自动测试环境。它能够自动拉去github中最新的4次提交,并进行构建。在这,你可使用企业版以及他们的分支。(源码是看不到的)ubuntu
每次构建有不一样的颜色,这表明这测试用例的状况。绿色表明经过,红色表明失败。你能够查看具体的日志。每次构建会有两个数据库,一个是安装了所有模块的数据库,一个是基础数据库。每次构建都会安装一些模拟数据。bash
Note服务器
访问:http://runbot.odoo. com/runbot.
几个基本的帐户
这是一个公开的测试环境,任何人均可以使用。因此说在你测试的时候也有可能其余人也在测试相同的分支。
正如其名,商城,你们上去看看就懂了。
**Odoo Community Association (OCA)**非盈利组织,管理者很多好模块。可是有很多模块都是老版本的了,跟新的版本不必定兼容。若有须要,须要本身修改。地址以下:https://github.com/OCA
有问题先上论坛,有不少坑其实你们都在踩。https://help.odoo.com.help.odoo.com.
官方的视频教程,访问地址:https://www.odoo.com/slides.
官方推荐ubuntu,这本书使用的是Ubuntu Server 18.04 LTS版本。
我的的开发环境最好跟生产环境相同,避免很多坑。
Ubuntu 18.0四、管理员帐户
一些配置可能须要帐户名,可经过whoami命令获取用户名。
$ 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
$ 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
$ sudo apt install postgresql -y
$ sudo -u postgres createuser --superuser $(whoami)
$ git config --global user.name "Your Name" $ git config --global user.email youremail@example.com
$ mkdir ~/odoo-dev $ cd ~/odoo-dev $ git clone -b 14.0 --single-branch --depth 1 https:// github.com/odoo/odoo.git
$ python3 -m venv ~/venv-odoo-14.0 $ source ~/venv-odoo-14.0/bin/activate
$ cd ~/odoo-dev/odoo/ $ pip3 install -r requirements.txt
$ createdb odoo-test $ python3 odoo-bin -d odoo-test –i base --addons- path=addons --db-filter=odoo-test$
工做原理
步骤1,安装核心依赖,用于安装odoo。
步骤2,安装wkhtmltopdf。
PostgreSQL配置
步骤3,安装数据库。
步骤4,建立一个与当前用户相同的用户。-s 是授予用户超级权限。odoo经过psycopg2链接数据库。为了访问数据库,odoo使用以下默认配置:
由于咱们使用的是开发环境,所以咱们给用户授予了超级权限。但在生产环境下,要使用 --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所用到的参数
或使用的数据库并非系统登陆帐户,可经过以下参数进行配置。
其余的参数,可经过 odoo-bin --help参数查看。
当odoo启动了一个空的数据库,odoo将建立运行所需的基础表结构。同时将扫描addons-path目录中可用的模块,并加载到数据库中。默认的帐户密码是admin。
登陆系统http://localhost:8069/,以下截图
已经在运行的odoo实例
odoo的数据库管理工具提供了数据库的建立、复制、删除、备份及恢复。还能够数据库管理工具的管理密码,限制非受权用户对数据库的操做。
按步骤建立就行,若是点击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中。
$ ./odoo-bin --save --config myodoo.cfg --stop-after-init
$ ./odoo-bin --help | less
$ ./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的开发者,你须要了解如何激活开发者模式。激活开发者模式以后,能够访问高级的配置以及相映的字段。这些选项一般是隐藏掉的而且在平常到使用过程当中当中并不会用到。
用admin帐户登录系统。
进入配置。
在最下方能够看到开发者工具。
点击 激活开发者模式。
等待页面加载完成。
另一种激活方式
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.
退出开发者模式
小贴士
自odoo13以后,调试模式有所改变。调试模式是存储在sessino中的,即使你移除了url当中的?debug,依旧debug模式。
在开发者模式下会有两个改变
注意!
请在非开发者模式下调试你的应用,不然会可能忽略一些潜在的问题。
当你新建了一个模块儿的时候,妞妞实际上是不知道的,因此须要你进行手动的刷新。
这里就放两张图
当咱们点击了更新按钮的时候,妞妞会去读取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