还原停靠的PostgreSQL数据库时出错

还原停靠的PostgreSQL数据库时出错,postgresql,docker,backup,restore,Postgresql,Docker,Backup,Restore,我有一个停靠的Postgres数据库。我成功地执行了 docker exec -t your-db-container pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql 并生成.sql文件。但当我尝试使用以下脚本进行恢复时: cat my_dump.sql | docker exec -i your-db-container psql --username="myusername

我有一个停靠的Postgres数据库。我成功地执行了

docker exec -t your-db-container pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
并生成
.sql
文件。但当我尝试使用以下脚本进行恢复时:

cat my_dump.sql | docker exec -i your-db-container psql --username="myusername" mydb
我得到:

错误:“pg_dumpall”处或附近出现语法错误

第1行:pg_dumpall:错误:无法连接到数据库“template1”


我缺少什么?

转储文件包含备份过程中的错误消息,而不包含数据库转储

docker exec
将标准输出和标准错误结合起来。备份文件不能信任其输出

除了解决容器中的
pg_dumpall
无法连接到
template1
的根本问题外,您还需要一个更复杂的转储过程,该过程不能创建这样的情况,即shell错误消息在SQL语句应该出现的地方结束