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;
}