﻿---
title: "sqlite_home 要用绝对路径，相对路径跟着 cwd 跑"
summary: "配置键优先于 CODEX_SQLITE_HOME。它搬的是 SQLite 状态库，不是 log_dir，也不是 history.jsonl。相对路径按启动时的工作目录解析。"
category: config
level: intermediate
surfaces: [cli, app, ide]
tags: ["sqlite_home", "CODEX_SQLITE_HOME", "磁盘"]
canonical: /tips/sqlite-home/
---

# sqlite_home 要用绝对路径，相对路径跟着 cwd 跑

配置键优先于 CODEX_SQLITE_HOME。它搬的是 SQLite 状态库，不是 log_dir，也不是 history.jsonl。相对路径按启动时的工作目录解析。

SQLite 状态默认跟 `CODEX_HOME`。磁盘吵、想把状态库和配置拆开时，写用户配置，路径用绝对路径：

```toml
sqlite_home = "/home/you/codex-sqlite"
```

只改这一次：

```bash
CODEX_SQLITE_HOME=/mnt/data/codex-sqlite codex
```

官方环境变量页写明：`sqlite_home` **优先于** `CODEX_SQLITE_HOME`；两条都可以是相对路径，但都相对**当前工作目录**，不是 `CODEX_HOME`。写进 `config.toml` 的 `./sqlite` 会随着你从哪个仓库启动而换地方，看起来像「状态丢了」。

三件不要混：

- `sqlite_home`：agent jobs 和可恢复运行时状态的 SQLite
- `log_dir`：opt-in 明文 `codex-tui.log`
- `[history] persistence`：只约束 `history.jsonl`，不管 `sessions/` 的 rollout

`CODEX_HOME` 仍放配置、鉴权和会话文件。目标目录要先建好、可写。有人看到 `logs_*.sqlite-wal` 狂写盘（例如 openai/codex#17320），`RUST_LOG` 不一定压得住 SQLite TRACE；先把库迁到独立磁盘，不要指望只改日志级别。不要把相对 `sqlite_home` 写进会进 Git 的项目 config。

## 来源

- [OpenAI · Environment variables](https://learn.chatgpt.com/docs/config-file/environment-variables)
- [OpenAI · Configuration reference](https://learn.chatgpt.com/docs/config-file/config-reference)
