如何在heroku应用程序运行java应用程序中运行postgresql命令?
我正在heroku上运行java web应用程序。现在,我正在尝试从应用程序获取sql转储文件如何在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应用程序中
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);