dirk
2/21/2011 - 3:50 PM

mysqldump with database.php settings

mysqldump with database.php settings

#!/usr/bin/php
<?php
if (!defined('TMP')) {
	define('TMP', getcwd() . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR);
}

$file = getcwd() . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'database.php';
if (!is_readable($file)) {
	echo "Can't find database config at : $file\n";
	die(1);
}

require($file);
$config = new DATABASE_CONFIG();

if (!isset($config->default)) {
	echo "Can't find default connection information\n";
	die(1);
}

$config = $config->default;
$aArgs = array(
	'--host' => $config['host'],
	'--port' => $config['port'],
	'--username' => $config['login'],
	'--password' => $config['password'],
	'--default-character-set' => (!empty($config['encoding']))?$config['encoding']:'',
	'-db' => $config['database'],
);
$aArgs = array_filter($args);

$args = '';
foreach($aArgs as $k => $v) {
	$args .= " $k=" . escapeshellarg($v);
}
`mysqldump$args | gzip > {$config['database']}.sql.gz`;