gpt4 book ai didi

java - 如何通过 JDBC 从 Postgresql-DB 进行备份?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:04:09 24 4
gpt4 key购买 nike

在我们的应用程序中,我们实现了从我们的代码中触发的自动数据库迁移。现在我们想在进行任何迁移之前备份现有的数据库。

谁能解释如何在 Java 代码中通过 JDBC 对 Postgresql-DB 进行完整备份?

更新:它不能通过 JDBC 工作。

这里是一些对Frank Heikens的响应的工作代码:

    final List<String> baseCmds = new ArrayList<String>();
baseCmds.add("/usr/bin/pg_dump");
baseCmds.add("-h");
baseCmds.add("hostname");
baseCmds.add("-p");
baseCmds.add("5432");
baseCmds.add("-U");
baseCmds.add("username");
baseCmds.add("-b");
baseCmds.add("-v");
baseCmds.add("-f");
baseCmds.add("/path/to/backup.sql");
baseCmds.add("dbName");
final ProcessBuilder pb = new ProcessBuilder(baseCmds);

// Set the password
final Map<String, String> env = pb.environment();
env.put("PGPASSWORD", "password");

try {
final Process process = pb.start();

final BufferedReader r = new BufferedReader(
new InputStreamReader(process.getErrorStream()));
String line = r.readLine();
while (line != null) {
System.err.println(line);
line = r.readLine();
}
r.close();

final int dcertExitCode = process.waitFor();

} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException ie) {
ie.printStackTrace();
}

最佳答案

你为什么不使用pg_dump

关于java - 如何通过 JDBC 从 Postgresql-DB 进行备份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810288/

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