Redaxscript\Console\Command\Backup::_database PHP Method

_database() protected method

backup the database
Since: 3.0.0
protected _database ( array $optionArray = [] ) : string
$optionArray array
return string
    protected function _database($optionArray = [])
    {
        $dbType = $this->_config->get('dbType');
        $dbHost = $this->_config->get('dbHost');
        $dbName = $this->_config->get('dbName');
        $dbUser = $this->_config->get('dbUser');
        $dbPassword = $this->_config->get('dbPassword');
        $directory = $this->prompt('directory', $optionArray);
        $date = date('Y_m_d_H:i:s');
        $file = $dbName ? $dbName . '_' . $date . '.' . $dbType : $date . '.' . $dbType;
        if (is_dir($directory) || mkdir($directory)) {
            if ($dbType === 'mysql' && $dbHost && $dbName && $dbUser) {
                $command = 'mysqldump -u ' . $dbUser . ' -p' . $dbPassword . ' -h ' . $dbHost . ' ' . $dbName . ' > ' . $directory . '/' . $file;
            }
            if ($dbType === 'pgsql' && $dbHost && $dbName) {
                $command = 'PGPASSWORD=' . $dbPassword . ' pg_dump -U postgres -h ' . $dbHost . ' ' . $dbName . ' > ' . $directory . '/' . $file;
            }
            if ($dbType === 'sqlite' && $dbHost) {
                $command = 'sqlite3 ' . $dbHost . ' .dump > ' . $directory . '/' . $file;
            }
            exec($command, $output, $error);
            return $error === 0;
        }
        return false;
    }