本地 PostgreSQL 开发环境
适用对象
本页面适用于需要在本机以“状态外置”方式开发和调试 AiOS 控制面的维护者与开发者。目标与范围
本页说明如何:- 用仓库内提供的 Docker Compose 启动本地 PostgreSQL
- 为当前 schema 执行 migration
- 让
go run ./cmd/aios走 PostgreSQL-backed 模块装配,而不是进程内 stub
核心概念
- 当前仓库的正式外部状态存储路径是 PostgreSQL,不是 SQLite
cmd/aios在dev运行模式下也要求postgres.dsn,不会再静默回退到内存仓储Makefile的migrate-up/migrate-down依赖golang-migrate的migrate命令
标准流程
1. 进入仓库根目录
2. 启动本地 PostgreSQL
3. 配置 AiOS 运行时环境变量
AIOS_RUNTIME__MODE=dev保持当前本地开发语义dev模式现在要求 PostgreSQL 可用;只有bootstrap模式允许无 DSN 启动AIOS_DEV_COMPOSE_PROJECT用于隔离不同工作树或不同开发者的 Compose 资源名AIOS_DEV_POSTGRES_PORT用于避开本机已有的5432AIOS_POSTGRES__DSN会覆盖postgres.dsnDATABASE_URL供 migration 命令使用
4. 执行 migration
migrate 命令,需要先安装 golang-migrate,因为当前 Makefile 直接调用它。
5. 启动当前 server/bootstrap 入口
6. 验证服务已连到外部状态存储
CLI 示例
Web UI 路径
本页面面向本地控制面开发,不对应固定业务 UI 页面。服务启动后可再访问 Web 前端或直接调用已冻结的 HTTP API。常见问题 / 风险提示
1. 只启动 go run ./cmd/aios,没有配置 DSN
这种情况下 dev 模式会直接启动失败。当前只有 bootstrap 模式允许无 DSN 启动,而那条路径仍然只是临时 stub,不适合作为“状态外置”的开发闭环。
2. make migrate-up 报 migrate: command not found
说明本机没有安装 golang-migrate CLI。先补齐该工具,再执行 migration。
3. PostgreSQL 已启动但应用仍报连接失败
请核对:AIOS_POSTGRES__DSNAIOS_DEV_POSTGRES_PORT与 DSN 里的端口是否一致AIOS_DEV_COMPOSE_PROJECT是否和你预期的容器/volume 资源属于同一组- 容器健康检查是否已经通过