跳到正文
个人 Web Alpha内容核对:2026-09-23查看 Markdown

5.2 备份、恢复与升级

完整备份包含 PostgreSQL、DSH 会话与配置、工作文件以及数据库口令。以下命令针对 Compose 安装,在原源码目录执行,使用一个新的备份目录。

1. 停止写入并备份

先处理正在执行的工作。下面是 macOS / Linux shell 命令:

sh
umask 077
mkdir backup
docker compose stop app
docker compose exec -T db pg_dump -U teloa -d teloa -Fc > backup/database.dump
docker compose run -T --rm --no-deps --entrypoint tar app -C /data -czf - dsh teloa > backup/app.tar.gz
docker compose run -T --rm --no-deps --entrypoint cat app /run/teloa-secrets/postgres-password > backup/postgres-password
docker compose start app

每条导出命令应成功结束;文件存在不代表有效,失败可能留下空文件。备份包含凭据和工作资料,应保存到受控的加密存储。

2. 在独立副本恢复

使用相同版本源码和镜像。确认新项目名 teloa-restore 和端口 3107 尚未使用;以下流程不能用于覆盖已有工作库。

恢复副本可能带有启用的自动化和模型凭据。启动应用前确认不会重复执行真实业务,先在受控网络或停用计划的副本验证。

先恢复口令,再启动空数据库:

sh
docker compose -p teloa-restore run -T --rm --no-deps --entrypoint sh init -c 'cat > /data/secrets/postgres-password && chmod 440 /data/secrets/postgres-password' < backup/postgres-password
docker compose -p teloa-restore up -d db
docker compose -p teloa-restore ps

等待数据库健康,再恢复数据和工作文件:

sh
docker compose -p teloa-restore exec -T db pg_restore --exit-on-error --no-owner -U teloa -d teloa < backup/database.dump
docker compose -p teloa-restore run -T --rm --no-deps --entrypoint tar app -C /data -xzf - < backup/app.tar.gz
TELOA_PORT=3107 docker compose -p teloa-restore up -d --no-build

使用副本的新认证链接进入,核对同事、群、任务、资料和一份工作文件的身份与内容,不只看首页能否打开。验证后停止副本。

升级和回退

记录源码版本、镜像摘要和项目名,先在隔离副本检查目标版本。正式升级前完成备份,再在原目录执行 docker compose up -d --build

数据库或会话格式变化后,旧镜像不一定能读取新数据。回退需要旧版本和升级前完整备份配套,不能只改镜像标签。

源码模式的数据位置见配置与数据位置。直接复制运行中的 PostgreSQL 数据目录不能替代一致备份。

一个人,带领一支 AI 团队