设置

本章将介绍:

  • 如何搭建本地开发环境。

  • Odoo 数据库结构的概览。

  • 如何在本地环境中导出和导入 Odoo 数据库。

  • 如何让 Odoo 实例运行起来。

安装

根据预期用途,安装 Odoo 有多种方式。本文档假设你使用 源码安装,即从源代码运行 Odoo,这种方式最适合 Odoo 设计人员和开发人员。

数据库

结构

每个 Odoo 应用的工作方式都类似;它们基于相同的逻辑构建。模型包含字段以及链接到其他模型的关联字段。每个模型都有表示其所有字段的视图,包括后端视图和前端视图。

型号

Odoo 的基础是模型。模型使用字段来记录数据。记录存储在数据库中,因此它们与模型相关联。在 Odoo 中,你可以启用 开发者模式,然后前往 设置 ‣ 技术 ‣ 数据库结构: 模型,在后端找到不同的模型。

模型页面

字段

在模型中,我们会集中管理字段(即在代码中需要定位的字段名称)。

更多内容

字段和小组件

常规字段
  • 日期

  • 字符型

  • 选择

  • …

关系字段

关联字段调用另一个模型中的字段。它们允许将模型链接在一起,并让它们轻松交互。换言之,当你使用关联字段时,你会将一条记录与另一条记录(位于另一个模型上)链接起来,从而能够获取该关联记录上各字段的内容。

  • Many2one 字段的填写方式是从另一个模型的记录列表中选择一条记录(从 多 条记录中选择 一 条)。例如,报价单上的 客户 字段让你从 联系人 模型上的多个客户中选择一个客户。

  • One2many 字段是对现有多对一关系的反向搜索。例如,你可以在联系人上列出其所有现有报价单(从 一 条记录中显示 多 条)。

  • Many2many 字段的填写方式是从另一个模型的记录列表中选择一条或多条记录。例如,你可以为一个产品设置多个标签,多个产品也可以使用相同的标签(从 多 条记录中选择 多 条)。

视图

视图定义如何向最终用户显示记录。视图以 XML 指定,这意味着它们可以独立于其所代表的模型进行编辑。视图十分灵活,可以对它们所控制的界面进行深度定制。

后端与前端
  • 后端视图:看板、列表、表单等。

  • 前端视图:QWeb

静态与动态
  • 静态页面 的内容稳定,例如首页。你可以定义它们的 URL,并设置一些属性,如已发布、已索引等。

  • 动态页面 是动态生成的,例如产品页面。它们的 URL 是动态的,默认对所有人可访问(可以通过配置访问权限来更改)。

基础、继承与重复
  • 基础视图: 由 Odoo 原生实现的视图。它直接派生自对应的模型。绝不应修改基础视图,因为这样才能在更新 Odoo 数据库时不覆盖客户的修改。

修改总是在重复视图或继承视图中进行,两者存在一些差异:

  • 继承视图 始终具有 inherit_id,并基于其所继承的基础视图的源代码来应用修改。

  • 重复视图 是从另一个视图复制而来的。大多数情况下,这类视图是最终用户通过网站构建器应用修改时由 Odoo 创建的。此机制可防止模块更新时数据丢失,因为只有源视图会被更新,重复视图不会。如果存在重复视图,原始视图和重复视图都会显示在列表中,但只有重复视图带有 external_id。设置了 external_id 就意味着该视图是由模块的源代码创建的。

导入现有数据库

注解

如果你不需要导入现有数据库,可以直接前往 主题化 章节。

转储

Odoo SaaS 版
  1. 登录具有足够访问权限的用户账户。

  2. 转到 <database_url>/saas_worker/dump。

Odoo.sh云
  1. 连接到 Odoo.sh。

  2. 选择要备份的分支。

  3. 选择 备份 选项卡。

  4. 点击 创建备份 按钮。

  5. 过程结束后会出现通知。打开该通知并点击 转到备份 按钮。

  6. 点击 下载 图标。在 用途 下选择 测试,在 文件存储 下选择 含文件存储。

    下载备份
  7. 转储准备好可供下载时会收到通知。打开通知并点击 下载 即可获取转储。

    数据库备份

移动 filestore

复制 filestore 文件夹中包含的所有文件夹,并将它们粘贴到计算机上的以下位置:

  • macOS:/Users/<User>/Library/Application Support/Odoo/filestore/<database_name>

  • Linux:/home/<User>/.local/share/Odoo/filestore/<database_name>

注解

/Library 是隐藏文件夹。

数据库设置

创建一个空数据库。

createdb <database_name>

将 SQL 文件导入到刚刚创建的数据库中。

psql <database_name> < dump.sql

重置管理员用户密码。

psql \c
<database_name>
update res_users set login='admin', password='admin' where id=2;

如有必要,禁用双因素身份验证强制策略选项。

psql <database-name>
update res_users set totp_secret='' where id=2;

快速入门

运行 Odoo

一旦设置了所有依赖项,就可以通过运行服务器的命令行界面 odoo-bin 来启动Odoo。它位于Odoo社区目录的根目录。

要配置服务器,你可以指定命令行参数或使用配置文件。下面介绍第一种方法。

CLI 提供了多项与 Odoo 相关的功能。你可以用它来 运行服务器、为 Odoo 主题生成脚手架、填充数据库,或统计代码行数。

Shell 脚本

运行服务器 的典型做法是将所有命令行参数添加到 .sh 脚本中。

示例

./odoo-bin --addons-path=../enterprise,addons --db-filter=<database> -d <database> -i website --dev=xml --without-demo=True

文件夹

说明

--addons-path

以逗号分隔的目录列表,模块存储在这些目录中。系统会在这些目录中扫描模块。

-d

--database

安装或更新模块时使用的数据库。

--db-filter

隐藏与筛选条件不匹配的数据库。

-i

--init

以逗号分隔的模块列表,在运行服务器之前安装(需要 -d)。

-u

--update

以逗号分隔的模块列表,在运行服务器之前更新(需要 -d)。

--reinit

以逗号分隔的模块列表,在启动服务器之前重新初始化(需要 -d)。

--dev

以逗号分隔的功能列表。仅用于开发目的。更多信息

--without-demo

阻止服务器加载演示数据。

登录

服务器启动后(会打印 INFO 日志 odoo.modules.loading: Modules loaded.),在 Web 浏览器中打开 http://localhost:8069,并使用基础管理员账户登录。

电子邮件输入 admin,密码输入 admin。

欢迎主页

小技巧

按 CTRL+C 停止服务器。如有需要,可再按一次。

开发者模式

开发者模式(又称调试模式)对开发很有帮助,因为它提供了额外的工具。接下来的章节假定你已启用开发者模式。