diff --git a/retailcrm/src/Components/Command.php b/retailcrm/src/Components/Command.php index 6f77e03..95498bd 100644 --- a/retailcrm/src/Components/Command.php +++ b/retailcrm/src/Components/Command.php @@ -62,13 +62,30 @@ class Command $dbName = $this->container->settings['db']['dbname']; $dbHost = $this->container->settings['db']['host']; - $dumpfile = sprintf('%sdbdump.sql.gz', $this->container->saveDir); + switch ($this->container->settings['db']['driver']) { + case 'mysql': + $cmd = sprintf( + 'mysqldump -u %s --password=%s --host=%s %s', + $dbUser, $dbPass, $dbHost, $dbName + ); + break; + case 'pgsql': + $cmd = sprintf( + 'PGPASSWORD=\'%s\' pg_dump -U %s -h %s %s', + $dbPass, $dbUser, $dbHost, $dbName + ); + break; + default: + CommandHelper::dumpNotice(); + return; + } - $cmd = sprintf( - 'mysqldump -u %s --password=%s --host=%s %s | gzip --best > %s', - $dbUser, $dbPass, $dbHost, $dbName, $dumpfile + passthru( + sprintf( + '%s | gzip --best > %sdbdump.sql.gz', + $cmd, $this->container->saveDir + ) ); - passthru($cmd); } public function runIcml() diff --git a/retailcrm/src/Helpers/CommandHelper.php b/retailcrm/src/Helpers/CommandHelper.php index 10ae6a6..5d9604c 100644 --- a/retailcrm/src/Helpers/CommandHelper.php +++ b/retailcrm/src/Helpers/CommandHelper.php @@ -25,6 +25,11 @@ class CommandHelper echo " -h\t\tHistory type, if type is set only this history will be recieved\n"; } + public static function dumpNotice() + { + echo "\033[0;31mUnfortunately for the database can not be used to make the dump\033[0m\n"; + } + public static function updateNotice() { echo "\033[0;31mFull update is not allowed, please select one of the following flags: limit, set of identifiers or a specific id\033[0m\n"; diff --git a/retailcrm/src/Helpers/DebugHelper.php b/retailcrm/src/Helpers/DebugHelper.php index 8c91eef..e654de2 100644 --- a/retailcrm/src/Helpers/DebugHelper.php +++ b/retailcrm/src/Helpers/DebugHelper.php @@ -45,4 +45,4 @@ class DebugHelper { echo sprintf("%s\t%s\t%s%s", $string, $this->getCpuUsage(), $this->getMemoryUsage(), PHP_EOL); } -} \ No newline at end of file +}