Octop v0.9.20 生产环境推荐切换为 PostgreSQL,需预先部署 12+ 版本服务,配置专用数据库与用户,修改 config.yaml 中 database 为 postgres 类型并填写连接参数,手动执行 octop db migrate 初始化表结构,最后验证连接与权限。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Octop v0.9.20 默认使用 SQLite 作为内置存储,但生产环境或多人协作场景下,推荐切换为 PostgreSQL ——它能更好支撑并发访问、数据一致性与长期稳定运行。
确认 PostgreSQL 实例已就绪
Octop 不负责安装或启动 PostgreSQL,需提前部署好可用的 Postgres 服务。确保满足以下条件:
- PostgreSQL 12 或更高版本(建议 14+)正在运行,且可被 Octop 所在机器网络访问
- 已创建专用数据库(如 octop_db),编码为 UTF8
- 已创建专用用户(如 octop_user),并赋予该用户对数据库的 CONNECT 和 CREATE 权限(或至少 ALL PRIVILEGES ON DATABASE octop_db)
- 若 PostgreSQL 运行在远程服务器或非默认端口(5432),请确认防火墙/安全组放行对应端口
修改 Octop 配置文件启用 PostgreSQL
找到 Octop 的配置目录(通常为 ~/.octop/config.yaml 或项目根目录下的 config.yaml),编辑数据库配置段:
将原本类似这样的 SQLite 配置:
database: type: sqlite path: ~/.octop/data.db
替换为 PostgreSQL 配置:
database: type: postgres host: localhost port: 5432 name: octop_db user: octop_user password: your_secure_password sslmode: disable # 若 PostgreSQL 启用 SSL,改为 require 或 verify-full,并配置证书路径
注意:password 字段不支持环境变量占位符(如 ${DB_PASSWORD});如需保密,建议改用 .pgpass 文件方式认证(需确保 Octop 进程以对应系统用户运行)。
初始化数据库结构
Octop v0.9.20 不自动执行迁移。首次使用 PostgreSQL 前,必须手动运行初始化命令:
- 进入 Octop 项目目录(含
octop可执行文件或 Python 包) - 执行:
octop db migrate(CLI 模式)或python -m octop.cli db migrate(源码模式) - 成功后会输出类似
Applied migration 001_init.py的日志,表示表结构(如users、memories、agents)已创建 - 若报错“relation already exists”,说明迁移已执行过,无需重复
验证连接与权限
启动 Octop 前,可先做一次连接测试:
- 临时用
psql -h localhost -U octop_user -d octop_db登录,输入密码确认能进库 - 执行
\dt查看是否已有alembic_version和 Octop 相关表 - 检查用户是否有
SELECT、INSERT、UPDATE权限(尤其对memories表)
启动 Octop 后,观察日志中是否出现 Connected to PostgreSQL 或类似提示。若提示认证失败、数据库不存在或权限不足,需返回前几步逐一核对。










