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 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'src/controller/MaintenanceController.php') 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 -- cgit v1.2.3