From 80de6834a11734c6d3e047635b63ec93f2f68345 Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 11 May 2026 01:20:16 +0200 Subject: =?UTF-8?q?restauration=20compl=C3=A8te=20de=20la=20BDD=20(sauf=20?= =?UTF-8?q?table=20user)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/controller/MaintenanceController.php | 32 ++++++++++++++++++++++++++++- src/controller/PageManagementController.php | 2 -- src/controller/ViewDirector.php | 2 +- 3 files changed, 32 insertions(+), 4 deletions(-) (limited to 'src/controller') diff --git a/src/controller/MaintenanceController.php b/src/controller/MaintenanceController.php index c60ca1c..c62b21b 100644 --- a/src/controller/MaintenanceController.php +++ b/src/controller/MaintenanceController.php @@ -6,6 +6,7 @@ declare(strict_types=1); use Doctrine\ORM\EntityManager; use App\Entity\log; use Symfony\Component\Process\Exception\ProcessFailedException; +use Symfony\Component\HttpFoundation\File\UploadedFile; class MaintenanceController { @@ -49,7 +50,7 @@ class MaintenanceController die; } - static public function getLastDump(EntityManager $entityManager): void + static public function getLastDump(): void { try{ $file_path = Backup::getLastBackupName(); @@ -66,4 +67,33 @@ class MaintenanceController } die; } + + // parce qu'il faut un contrôleur + static public function handleBackupSelection(EntityManager $entityManager, string $selected_file): void + { + if(pathinfo($selected_file)['extension'] !== 'sql'){ // pas censé se produire en fait + throw new Exception("charger un fichier au format SQL"); + } + + Backup::restoreDatabase($entityManager, $selected_file); + } + + static public function downloadSQL(EntityManager $entityManager, UploadedFile $uploaded_file): void + { + if(pathinfo($uploaded_file->getClientOriginalName())['extension'] !== 'sql'){ + throw new Exception("charger un fichier au format SQL"); + } + //echo $uploaded_file->getSize(); // à garder de côté au cas où + + $server_place = Config::$database . '_' . new DateTime()->format('Y-m-d') . '_uploaded.sql'; + + try{ + // enregistrer le fichier + var_dump($uploaded_file->move(Backup::$backup_dir, $server_place)); + + // s'en servir + Backup::restoreDatabase($entityManager, $server_place); + } + finally{} + } } \ No newline at end of file diff --git a/src/controller/PageManagementController.php b/src/controller/PageManagementController.php index 7078866..8c4092f 100644 --- a/src/controller/PageManagementController.php +++ b/src/controller/PageManagementController.php @@ -6,9 +6,7 @@ declare(strict_types=1); use App\Entity\Page; use App\Entity\Node; use App\Entity\NodeData; -use App\Entity\Presentation; //use App\Entity\Image; -use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\EntityManager; class PageManagementController diff --git a/src/controller/ViewDirector.php b/src/controller/ViewDirector.php index 6883b73..a572f14 100644 --- a/src/controller/ViewDirector.php +++ b/src/controller/ViewDirector.php @@ -62,7 +62,7 @@ class ViewDirector extends AbstractBuilder // ViewDirector est aussi le premier return new Response($this->html, 302); } elseif(CURRENT_PAGE === 'maintenance'){ - Backup::mySQLdump($entityManager); // créer un nouveau backup + Backup::mySQLdump($entityManager, 'auto'); // créer un nouveau backup } -- cgit v1.2.3