我正在尝试从 phpPgAdmin 导出 PostgreSQL 数据库,但由于某种原因,它会转储出一个空的 SQL 文件。
数据库肯定不是空的。
要导出它,我单击数据库,然后导出,然后选择结构和数据。
知道为什么会这样吗?谢谢
答案1
您需要修改 /usr/share/phppgadmin 中的 dbexport.php(在 Ubuntu 上)
修改行从passthru($cmd);
修改echo passthru($cmd);
行$cmd = $exe . " -i";
至$cmd = $exe;
这就足够了。因为该参数-i
在 postgres 9.5 中似乎已被弃用,所以他给了我错误。
答案2
我设法使用以下命令从命令行导出它:
./pg_dump -U postgres -c -f /htdocs/databasename.sql databasename
答案3
我遇到了同样的问题并检查了我的日志:
/usr/lib/postgresql/8.4/bin/pg_dump: invalid option -- 'd'
Try "pg_dump --help" for more information.
phpPgAdmin 使用选项 -d,该选项在 2009 年已弃用,因此我编辑了 dbexport.php 并将“-d”替换为“--inserts”,现在它可以正常工作了 :D!
答案4
在导出界面,选择导出类型“SQL”将返回一个空文件。在这里选择“导出类型”为“COPY”是正确的选择 - 它返回转储 sql 文件。
但我也认为 phppgadmin 太烂了,我们不如使用命令行。例如,如果你上传的 SQL 文件超过了允许的上传文件大小(通常约为 2MB),它会失败但不报告任何错误。