【问题标题】:pg_restore: [custom archiver] could not read from input file: end of filepg_restore:[自定义存档器] 无法从输入文件中读取:文件结尾
【发布时间】:2020-05-10 14:57:40
【问题描述】:

我有一个生产数据库的转储,我可以在我的 docker 容器中轻松恢复它:docker exec -it my_db_container pg_restore --user=my_user --dbname=dbname sql/current.dump。一切正常,数据在这里。

但是,当我使用 docker exec -it my_db_container -U my-user -F c -b dbname > docker/db/current_stripped.dump 将本地数据库从 docker 重新转储回项目文件夹时,我的转储文件已创建(具有适当的大小和内容),但我无法使用它来恢复(docker exec -it whasq-db pg_restore --user=my-user --dbname=dbname sql/current_stripped.dump)它由于错误再次到一个新的数据库:pg_restore: [custom archiver] could not read from input file: end of file 但是恢复命令与生产环境中使用的相同(除了my_user,它是生产中的 postgres)。

【问题讨论】:

    标签: docker-compose postgresql-9.6 pg-dump pg-restore


    【解决方案1】:

    我遇到了同样的问题并解决了如下。我切换到-f--file 选项而不是管道(取自https://stackoverflow.com/a/51073680/6593069)。我在容器内创建了转储文件,然后将其复制到我的主机。

    这意味着你的情况:

    docker exec -it my_db_container -U my-user -F c -b dbname -f current_stripped.dump
    docker cp my_db_container:current_stripped.dump .
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 2019-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多