Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在heroku应用程序运行java应用程序中运行postgresql命令?_Java_Postgresql_Heroku_Playframework_Playframework 2.4 - Fatal编程技术网

如何在heroku应用程序运行java应用程序中运行postgresql命令?

如何在heroku应用程序运行java应用程序中运行postgresql命令?,java,postgresql,heroku,playframework,playframework-2.4,Java,Postgresql,Heroku,Playframework,Playframework 2.4,我正在heroku上运行java web应用程序。现在,我正在尝试从应用程序获取sql转储文件 ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "pg_dump -U postgres -Fc --schema=" + schema + " " + dbName + " >" + path); 上面的代码在具有windows的本地计算机上非常有效 问题是,如何使用process builder或java应用程序中

我正在heroku上运行java web应用程序。现在,我正在尝试从应用程序获取sql转储文件

ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", "pg_dump  -U postgres -Fc --schema=" + schema + " " + dbName + " >" + path);
上面的代码在具有windows的本地计算机上非常有效

问题是,如何使用process builder或java应用程序中的任何其他方法从heroku托管的应用程序获取转储文件


提前感谢…

您正在创建一个似乎使用Windows命令的进程。我相信,您的Heroku实例成为Windows的概率为零

如果您试图获取数据库的转储,则应检查


您需要使用Linux命令:

ProcessBuilder builder = new ProcessBuilder("/usr/bin/pg_dump", "-U postgres -Fc --schema=" + schema + " " + dbName + " >" + path);
然而,这仅仅是因为pg工具为您安装在dyno上。但这样,您将无法访问转储的文件。因此,您还需要执行一些代码来将其上传到S3或其他地方


还要确保使用正确的用户名和密码。它很可能不是“postgres”。

你可以尝试安装Linux并让你的ProcessBuilder处理它。Steve,我想在heroku托管的应用程序上这样做。我可以用java编写代码吗?如果你在dyno上运行命令,你将无法访问转储文件。谢谢codefinger,你能给我发送代码来执行并上传到S3上吗?
ProcessBuilder builder = new ProcessBuilder("/usr/bin/pg_dump", "-U postgres -Fc --schema=" + schema + " " + dbName + " >" + path);