Skip to content

Codex 更换提供商后的旧对话迁移

这页给出当前可执行的迁移思路。不同 Codex CLI / Desktop 版本的数据目录可能不一样,操作前先备份。

先确认一件事

更换提供商通常只影响“以后请求发到哪里”,不应该自动删除旧对话。旧对话一般保存在本机用户目录、应用数据目录或项目工作区的 Codex 状态目录里。

因此迁移的核心不是把聊天内容发给 Enodot,而是:

  1. 找到旧 Codex 的本地数据目录。
  2. 备份整个目录。
  3. 修改 Provider / Base URL / API Key。
  4. 启动 Codex,确认旧会话还在。
  5. 如果新版本创建了新的数据目录,再把旧数据复制或合并过去。

切换前必须备份

macOS / Linux / WSL:

bash
mkdir -p ~/codex-backup
cp -a ~/.codex ~/codex-backup/codex-dotdir-$(date +%Y%m%d-%H%M%S) 2>/dev/null || true
cp -a ~/.config/codex ~/codex-backup/codex-config-$(date +%Y%m%d-%H%M%S) 2>/dev/null || true

macOS Desktop 版还可以额外检查:

bash
ls "$HOME/Library/Application Support" | grep -i codex

如果存在 Codex 相关目录,先完整复制一份。

可能的数据位置

环境常见位置
Codex CLI~/.codex~/.config/codex
macOS Desktop~/Library/Application Support/Codex 或相近名称
Windows%APPDATA%%LOCALAPPDATA% 下的 Codex 目录
WSLWSL 内自己的 ~/.codex,和 Windows 不共享

推荐迁移步骤

  1. 退出 Codex CLI / Desktop。
  2. 备份旧目录。
  3. 只改 API 配置,不动 history/session/storage 文件。
  4. 启动 Codex。
  5. 打开历史对话列表。
  6. 如果历史还在,迁移结束。
  7. 如果历史为空,退出 Codex,比较新旧数据目录。
  8. 把旧目录中的 sessions、conversations、history、projects 等目录复制到新目录。
  9. 再启动 Codex 验证。

不建议做的事

  • 不要直接删除旧 Codex 数据目录。
  • 不要在没有备份的情况下运行清理工具。
  • 不要把旧会话 JSON 批量改字段,除非已经确认新旧版本 schema。
  • 不要把官方 Key 和 Enodot Key 混在同一个配置文件里,避免排查困难。

如果需要手动合并

先找出两个目录差异:

bash
diff -qr "旧目录" "新目录" | head -100

优先迁移这类内容:

名称线索可能含义
sessions会话记录
conversations对话记录
history历史索引
projects项目绑定信息
state应用状态

如果新版本启动后会自动建立索引,复制数据后重新启动即可。如果仍然不显示,需要进一步确认 Codex 当前版本的存储结构。

迁移后验证

  1. 旧对话列表能打开。
  2. 旧对话内容完整。
  3. 新消息能通过 Enodot 发出。
  4. 控制台用量记录能看到新请求。
  5. 模型名称和分组命中符合预期。

Codex 数据目录示意图

Enodot 提供 AI API 接入管理与开发者网关服务。