J'essaie de créér un script permettant de faire un dump d'une base de donnée (MySQL / PostGreSQL), mais je ne trouve pas vraiment quelles options utiliser dans les commande (pg_dump / mysqldump).
voila le script :
function backup(){
$database = array();
//$fileContenuDatabase = file_get_contents(FILEDATABASE);
//if(!empty($fileContenuDatabase)){
$database = parse_ini_file(FILEDATABASE);
$psConnect = 1; //$psConnect;
$psHost = localhost; //$psHost;
$psUserName = fonfon; //$psUsername;
$psMdp = *****; //$psMdp;
$psDB = fonfonblof; // $psDB;
$date = date("Ymd");
$backup = BACKUP_BD . "backup_".$date.".sql.gz";
switch($psConnect){
case 1 :
$command = "mysqldump -h $host -U postgres $psDB | gzip > $backup";
break;
case 2 :
$command = "pg_dump -h $psHost -u $psDB | gzip > $backup";
break;
}
system($command);
// Démarre la procédure de téléchargement
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/gzip");
header("Content-Disposition: attachment; filename=$backup;");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($backup));
//@readfile($backup);
return LIEN_BACKUP_BD . "backup_".$date.".sql.gz";
//}
}
Quand le script est lancé, aucun fichier de backup n'est créé, donc je ne sais pas si c est la commande qui le créé ou alors je dois cree un fichier vide qui sera ensuite rempli par le script ?Dans PG_admin, le dump fait appel à pg_dump.exe, donc est-ce qu'il peut y avoir un soucis sur ce niveau, selon que le script soit hébergé sur un serveur avec Linux ou Windows ?
Merci d avance ^^
Source principal : tutoriel sur le site du zero