我使用 tableplus 作为我的一般管理员。
目前使用 10.3 的 docker postgres 映像进行生产和本地主机开发。
因为 tableplus 将他们的 postgres 10 驱动程序升级到 10.5,我不能再使用 pg_restore 来恢复使用 10.5 转储的备份文件--format=custom
请参阅图片了解我如何使用 tableplus 进行备份。以及它如何使用 10.5 驱动程序
我得到的错误信息是pg_restore: [archiver] unsupported version (1.14) in file header
我尝试了什么
我尝试在 localhost 中简单地将我的 dockerfile 中的 postgres 标记从 10.3 更改为 10.5,但它没有用
原始 dockerfile
FROM postgres:10.3
COPY ./maintenance /usr/local/bin/maintenance
RUN chmod +x /usr/local/bin/maintenance/*
RUN mv /usr/local/bin/maintenance/* /usr/local/bin \
&& rmdir /usr/local/bin/maintenance
至
FROM postgres:10.5
COPY ./maintenance /usr/local/bin/maintenance
RUN chmod +x /usr/local/bin/maintenance/*
RUN mv /usr/local/bin/maintenance/* /usr/local/bin \
&& rmdir /usr/local/bin/maintenance
我的开发主机系统是 macOS。
我的开发 docker postgres 中有许多现有的数据库和模式。所以我目前对如何在不破坏旧数据的情况下安全升级感到困惑。
可以指教吗?
此外,我认为长期是弄清楚如何在 docker 外部(即在我的主机系统内部)拥有数据文件,以便每次我想为 postgres 升级我的 docker 映像时,我都可以安全地这样做而不必担心。
我也想问一下如何切换到这样的设置。