Răsfoiți Sursa

Test backup

stany.ferer 1 an în urmă
părinte
comite
91ae4b48e2
2 a modificat fișierele cu 27 adăugiri și 8 ștergeri
  1. 26 7
      core/class/backup.class.php
  2. 1 1
      core/class/stats.class.php

+ 26 - 7
core/class/backup.class.php

@@ -57,13 +57,32 @@ class backup
 
     public static function dumpMysqlRestore(string $_backupFile)
     {
-        $command = "mysql -h " . DB_HOST . " -u " . DB_USER . " -p" . DB_PASS . " " . DB_NAME . " < " . $_backupFile;
-        try {
-            system($command);
-            return TRUE;
-        } catch (Exception $ex) {
-            return FALSE;
+        // Étape 1 : Suppression de l'ancienne base
+        $dropCommand = "mysql -h " . escapeshellarg(DB_HOST) . " -u " . escapeshellarg(DB_USER) . " -p" . escapeshellarg(DB_PASS) . " -e 'DROP DATABASE IF EXISTS `" . DB_NAME . "`;'";
+        system($dropCommand, $dropResult);
+        if ($dropResult !== 0) {
+            alert::recError("Erreur : Impossible de supprimer la base existante.");
+
+            return false;
         }
+
+        // Étape 2 : Création de la nouvelle base
+        $createCommand = "mysql -h " . escapeshellarg(DB_HOST) . " -u " . escapeshellarg(DB_USER) . " -p" . escapeshellarg(DB_PASS) . " -e 'CREATE DATABASE " . DB_NAME . ";'";
+        system($createCommand, $createResult);
+        if ($createResult !== 0) {
+            alert::recError("Erreur : Impossible de créer la nouvelle base.");
+            return false;
+        }
+
+        // Étape 3 : Importer les données dans la nouvelle base
+        $importCommand = "mysql -h " . escapeshellarg(DB_HOST) . " -u " . escapeshellarg(DB_USER) . " -p" . escapeshellarg(DB_PASS) . " " . DB_NAME . " < " . escapeshellarg($_backupFile);
+        system($importCommand, $importResult);
+        if ($importResult !== 0) {
+            alert::recError("Erreur : Échec lors de l'importation des données.");
+            return false;
+        }
+
+        return true;
     }
 
     public static function scanFolder()
@@ -86,7 +105,7 @@ class backup
 
     public static function last()
     {
-        $return = NULL;
+        $return = [];
         foreach (self::scanFolder() as $key => $value) {
             $return[$value["timestamp"]] = $value;
         }

+ 1 - 1
core/class/stats.class.php

@@ -47,7 +47,7 @@ class stats {
     }
 
     public static function countStatistiquesGenraleEntrees(string $_lieu = NULL, int $_actifOnly = 1){
-        $return = NULL;
+        $return = [];
         $actif = ($_actifOnly == 1) ? " WHERE contrat = 1" : "";
         $lieu = ($_lieu == NULL) ? "" : " AND lieu = '" . self::byLieu($_lieu) . "'";