【发布时间】:2020-11-24 10:23:19
【问题描述】:
我们正在尝试将备份文件恢复到数据库名称包含空格的 postgres 数据库。例如:“abbb abc”、“dqweqwe fdf fsdf”、... 但是在恢复未显示在该数据库名称中的数据后(由 pgAdmin 工具检查)。 以下是我们的备份恢复 java 命令:
String host = "localhost";
String port = "5432";
String databaseName = "abc abc ";
String user = "postgres";
String backupFilePath= "C:\Users\Sun\Desktop\backup.backup";
final String RESTORE_COMMAND = "pg_restore -c -h %s -p %s -U %s -d %s -v %s";
String cmd = String.format(RESTORE_COMMAND, host, port, user, databaseName, backupFilePath);
// Execute commands by Runtime.getRuntime().exec(cmd )
excuteCommand(cmd);
我们尝试使用一些转义字符串,如 "" 或 '' 或 [] ,甚至用 \ 替换 databaseName 中的空格,但它还没有奏效。 这些对我们来说有什么建议吗?请帮忙,非常感谢。
【问题讨论】:
-
您可能需要考虑使用正确填充的字符串数组而不是
Runtime.exec(String)调用Runtime.getRuntime().exec(String[]) -
是的,用于执行恢复的命令保证正确
标签: java postgresql jdbc