From b3bded23325154fbf6d828e2b3fd56331053b57b Mon Sep 17 00:00:00 2001 From: Roman Hergenreder Date: Tue, 6 Apr 2021 19:01:20 +0200 Subject: [PATCH] pg_dump --- cli.php | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/cli.php b/cli.php index ea98dde..ef8e15b 100644 --- a/cli.php +++ b/cli.php @@ -46,28 +46,46 @@ function handleDatabase($argv) { case 'migrate': $db = connectDatabase(); break; - case 'dump': + case 'export': $config = getDatabaseConfig(); - $output = $argv[3] ?? null; + $dbType = $config->getProperty("type") ?? null; $user = $config->getLogin(); $password = $config->getPassword(); $database = $config->getProperty("database"); - $command = ["mysqldump", "-u", $user, "--password=$password"]; + $host = $config->getHost(); + $port = $config->getPort(); + + $env = []; + $output = $argv[3] ?? null; $descriptorSpec = [STDIN, STDOUT, STDOUT]; - if ($database) { - $command[] = $database; + if ($dbType === "mysql") { + + $command = ["mysqldump", "-u", $user, '-h', $host, '-P', $port, "--password=$password"]; + if ($database) { + $command[] = $database; + } + + } else if ($dbType === "postgres") { + $command = ["pg_dump", "-U", $user, '-h', $host, '-p', $port]; + if ($database) { + $command[] = $database; + } + + $env["PGPASSWORD"] = $password; + } else { + die("Unsupported database type\n"); } if ($output) { $descriptorSpec[1] = ["file", $output, "w"]; } - $process = proc_open($command, $descriptorSpec, $pipes); + $process = proc_open($command, $descriptorSpec, $pipes, null, $env); proc_close($process); break; default: - die("Usage: cli.php db \n"); + die("Usage: cli.php db \n"); } }