根据 ttrss 的安装指南 (https://tt-rss.org/wiki/InstallationNotes) 进行安装后,数据库会不断重启,错误信息为 The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 15.4.
如遇到这种情况除了可以修改 docker-compose.yml 文件将 PostgreSQL 版本改为 12 版外,还可以通过升级数据库文件的方式处理。
根据官方文档建议,可使用 pgautoupgrade 升级数据库(https://github.com/pgautoupgrade/docker-pgautoupgrade)
我的升级操作流程如下:
- 停止 ttrss 的容器
docker-compose down
docker-compose rm - 获取 pgautoupgrade (注意下载 PosrgreSQL 15 版的)
docker pull pgautoupgrade/pgautoupgrade:15-alpine3.8 - 将容器中的数据库备份出来:
docker cp 容器 ID:/var/lib/postgresql/data /备份/存储/位置 - 进行数据库升级
docker run –name pgauto -it –mount type=bind,source=/备份/存储/位置/,target=/var/lib/postgresql/data -e POSTGRES_PASSWORD=数据库密码 -e PGAUTO_ONESHOT=yes pgautoupgrade/pgautoupgrade:15-alpine3.8 - 将数据库恢复至容器
docker cp ./备份存储位置 容器 ID:/var/lib/postgresql/ - 如之前已修改 ttrss 的 docker-compose.yml 文件的 PostgreSQL 版本降级为 12,注意恢复为 15,并启用容器