Awesome-TTRSS 迁移/备份恢复

云服务器重装系统后,原有的 TTRSS 服务也需要重新配置,故在网上查找到迁移/备份的教程,以备使用。

查询原始服务器 docker 状态(确保在 root 状态下操作)

查询数据库容器 ID

sudo docker ps
CONTAINER    ID    IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES
938354bd6bd6    wangqiru/ttrss:latest    "sh /docker-entrypoi…"    39 hours ago    Up    39 hours (unhealthy)    0.0.0.0:18280->80/tcp, :::18280->80/tcp    ttrss
6c4b2d760a18    postgres:16-alpine    "docker-entrypoint.s…"    39 hours ago    Up 39 hours (healthy)    ttrss_database.postgres_1

从查询结果得知,数据库 postgres 的 ID 为 6c4b2d760a18,

备份 postgres 数据库

利用 postgres 自带备份方法,使用如下命令,docker exec 后使用 postgres 容器的 ID,即上面命令中查询到的容器 ID,

docker exec {容器ID} pg_dumpall -c -U postgres > export.sql

将导出的数据库备份文件 export.sql 导出至本地。

恢复 postgres 数据库

将备份的数据库文件 export.sql 上传到新服务器中,使用如下命令恢复数据库,

cat export.sql | sudo docker exec -i {容器ID} psql -U postgres

即可恢复备份。

其他 - 查询数据库用户名

原始教程中,命令中的 postgres 为数据库的用户名,但是我的 docker 容器查询没有显示数据库的用户名,故使用原始用户名尝试,正确通过验证。
以下为查询用户名命令,

docker exec -it {容器ID} env
sudo docker exec -it 6c4b2d760a18 env

结果得到 PG_USER=postgres,其中 postgres 即是数据库用户名。

参考

Awesome-TTRSS(Tiny Tiny RSS)迁移(复制)到另一个服务器(VPS)步骤 - Largesse’s blog