Odoo 如何用 db init 初始化第一个数据库并用 start 命令启动本地服务完成首次运行
【免费下载链接】odooOdoo. Open Source Apps To Grow Your Business.项目地址: https://gitcode.com/GitHub_Trending/od/odoo
在 Odoo 代码仓库中完成一次"从零到可用"的首次运行,需要两步:先用db init子命令在 PostgreSQL 中创建并初始化一个数据库(安装最小必需的模块),再用start子命令以默认配置启动 Web 服务,最后通过浏览器访问确认登录成功。下面的操作路径适用于直接基于本仓库源码运行的场景,不涉及打包安装。
准备条件
- 当前目录为 Odoo 源码根目录,其中 odoo-bin 是统一入口脚本,它导入
odoo.cli并调用odoo.cli.main()分发db、start等子命令。 - Python 3 环境。依赖清单见 requirements.txt,其中包含
psycopg2等 PostgreSQL 驱动,各依赖版本按 Ubuntu 24.04 与 Debian 12 官方版本对齐。安装依赖:
pip install -r requirements.txt- 一个可连接的 PostgreSQL 实例。
db子命令会直接操作数据库服务器,需要时可传入-r/--db_user、-w/--db_password、--db_host、--db_port、--pg_path、--db_sslmode等参数指定连接方式,不传则使用默认连接。
第一步:用 db init 创建并初始化数据库
在仓库根目录执行:
./odoo-bin db init demodb init的作用是"Create and initialize a database":创建一个空数据库并安装最小必需的模块(minimum required modules)。demo是位置参数,即要创建的数据库名,可换成任意名称。
db init支持以下选项(来自 db 子命令定义):
| 参数 | 默认值 | 用途 |
|---|---|---|
database(位置参数) | 必填 | 要创建的数据库名 |
--with-demo | 不启用 | 在新数据库中安装演示数据 |
--language | en_US | 实例默认语言 |
--username | admin | 管理员用户名 |
--password | admin | 管理员密码 |
--country | 无 | 设置到主公司上的国家代码 |
如果想带演示数据并用指定语言初始化,可以写成:
./odoo-bin db init demo --with-demo --language en_US如果初始化完成后还需要安装更多模块,按db init帮助文本的说明,使用module install命令,具体可用:
./odoo-bin module install --help这一步的判断点
- 目标库名已存在且未加
--force时,命令会直接退出并输出:Target database <名称> exists, aborting.,同时提示可用--force删除已有库。 --force的副作用:它会先删除同名数据库再重新创建,库内数据不可恢复。确认该库可以丢弃后再使用。- 创建数据库失败时会以
Could not create database \<名称>`. (...)` 的形式退出,括号内是底层报错原因,优先检查 PostgreSQL 是否可用、连接参数是否正确。
第二步:用 start 命令启动本地服务
数据库就绪后,在仓库根目录执行:
./odoo-bin start -d demostart的定位是"Quickly start the odoo server with default options",即以默认选项快速启动服务(见 start 子命令定义)。它的行为有几点需要知道:
-d/--database:指定数据库名。不传时默认取当前项目目录名,因此如果你用db init demo建库,这里就必须显式传-d demo,否则启动的不是刚建好的库。--path:模块目录,默认为.。当前目录下各子文件夹里发现了模块清单时,start会自动追加--addons-path指向该目录;在 virtualenv 中运行时,--path默认取 virtualenv 路径而非当前目录。start还会自动追加一个--db-filter,把请求限定到本次指定的库名。- 边界说明:如果指定的数据库尚不存在,
start会自动创建一个空库并只安装base模块后启动。这是可跳过db init的替代路径,但按本文主路径执行时,库已由db init初始化完成,启动时不会再触发该行为。
验证首次运行
Odoo Web 服务的默认 HTTP 端口为 8069(见 tools/config.py 中--http-port的默认值)。服务启动后:
- 浏览器访问
http://localhost:8069; - 选择数据库
demo,使用db init时设定的凭据登录——默认即admin/admin(未传--username/--password时); - 登录成功进入工作台,说明数据库初始化与服务启动均已完成。
排查与限制
- 连不上数据库:
db与start都接受-c/--config指向配置文件(参考仓库中 debian/odoo.conf 展示的db_host、db_user、db_password等配置项),也可以直接在命令行传入--db_host、--db_port、-r、-w等参数。 - 端口不是 8069 时:
start透传服务参数,可用--http-port覆盖默认端口后再验证访问地址。 - 重新初始化:删除已存在的库只能依赖
--force(连带删除 filestore 数据),或者先手工处理该库;db init本身不会对已存在的库做覆盖。 db init只安装最小模块集,其余业务模块需要通过module install另行安装,这不属于首次运行的必做步骤。
完成以上三步后,你就有了一个由db init初始化的数据库和一个以默认配置运行的本地 Odoo 实例,后续所有验证都以http://localhost:8069的管理员登录结果为准。
【免费下载链接】odooOdoo. Open Source Apps To Grow Your Business.项目地址: https://gitcode.com/GitHub_Trending/od/odoo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考