octop v0.9.19 支持通过环境变量 database_url 切换 postgresql 作为后端,需确保实例就绪、配置权限与网络,并执行 alembic upgrade head 初始化表结构,日志显示“connected to postgresql”及“migration completed successfully”即验证成功。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

确认 PostgreSQL 实例已就绪
Octop 不负责部署数据库,只连接使用。你需要先确保一个可用的 PostgreSQL 服务(本地或远程):
- 版本要求:PostgreSQL 12 或更高(推荐 14/15/16),支持 `citext`、`pg_trgm` 扩展
- 数据库名:建议新建专用库,如 octop_db
- 用户权限:创建专用用户(如 octop_user),赋予该库的 CREATE、CONNECT、ALL PRIVILEGES
- 网络可达:确保运行 Octop 的机器能通过 TCP 访问 PostgreSQL 的 5432 端口(或自定义端口)
设置环境变量启用 PostgreSQL
Octop v0.9.19 通过环境变量控制数据库类型。在启动前,必须 unset 或覆盖默认的 SQLite 配置:
- DATABASE_URL(必需):格式为 postgresql://user:password@host:port/dbname?sslmode=disable
- 示例(无 SSL 的本地库):
DATABASE_URL="postgresql://octop_user:mypassword@127.0.0.1:5432/octop_db" - 若 PostgreSQL 启用了 TLS/SSL,将
?sslmode=disable改为?sslmode=require,并确保证书路径正确(Octop 会自动读取PGSSLCERT/PGSSLKEY环境变量) - 删除或注释掉
SQLITE_PATH变量,避免冲突
初始化数据库结构
Octop 使用 SQLAlchemy + Alembic 管理 schema。首次启动时不会自动建表,需手动执行迁移:
- 进入 Octop 项目根目录(含
alembic.ini和alembic/文件夹) - 运行命令初始化表结构:
alembic -c alembic.ini upgrade head - 若提示找不到
alembic,先安装:pip install alembic - 成功后,可连接 PostgreSQL 执行
\dt查看是否生成users、agents、chat_sessions等核心表
验证与常见问题
启动 Octop 后,观察日志中是否出现类似以下关键行:
- INFO — Connected to PostgreSQL at 127.0.0.1:5432/octop_db
- INFO — Database migration completed successfully
- 若报错
relation "users" does not exist,说明迁移未执行或失败 - 若报错
password authentication failed,检查用户名、密码、pg_hba.conf 是否允许该 host 的 md5/scram-sha-256 认证










