gpt4 book ai didi

postgresql - 如何 pg_restore

转载 作者:行者123 更新时间:2023-11-29 11:14:04 27 4
gpt4 key购买 nike

我正在通过命令行将我的数据库“mydatabase”转储到文本文件“mydatabase.sql”中。

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase"

一切顺利。但经过多次尝试后,我无法通过 pg_restore 将这些文件与数据一起返回到数据库。
但是如果我删除这个数据库中的所有表,我可以这样做:

psql -f "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase" "postgres"

这将恢复所有数据。问题是我不能通过 VBNET/shell 运行 pgsl 所以我宁愿需要 pg_restore.exe这是我的尝试:

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_restore.exe " -i -h localhost -p 5432 -U postgres -d "mydatabase" -v "C:\Users\User 1\Desktop\mydatabase.sql"

...我在哪里收到消息:

C:\Users\User 1>"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_restore.exe " -i -h localhost -p 5432 -U postgres -d "mydatabase" -v "C:\Users\User 1\Desktop\mydatabase.sql" invalid binary "C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_restore.exe " pg_restore.exe : [archiver] input file does not appear to be a valid archive

在尝试恢复之前,我在服务器上有空数据库“mydatabase”(没有表)。请任何帮助让 pg_restore 与 'mydatabase.sql' 一起工作,它是用 pg_dump 转储的,它显然包含正确的数据,所以我可以通过纯命令行或 VBNET/shell 使用它。

最佳答案

在您的 pg_dump 中,指定 -F t 标志。这告诉 pg_dump 以 tar 格式创建备份,适合通过 pg_restore 恢复。

"C:/Program Files (x86)/PostgreSQL/9.1/bin/pg_dump.exe " --host localhost --port 5432 --username "postgres" --no-password --verbose -F t --file "C:\Users\User 1\Desktop\mydatabase.sql" "mydatabase"

关于postgresql - 如何 pg_restore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13704160/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com