From 14d351103c58f84268b78a5e5a77c04c05381d49 Mon Sep 17 00:00:00 2001 From: Boy132 Date: Tue, 29 Apr 2025 17:05:49 +0200 Subject: [PATCH] Fix database & user not being deleted (#1315) --- .../DatabaseResource/Pages/ListDatabases.php | 8 +------- .../Databases/DatabaseManagementService.php | 15 +++++++++++---- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php b/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php index 30549c6d3..3c7eda0aa 100644 --- a/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php +++ b/app/Filament/Server/Resources/DatabaseResource/Pages/ListDatabases.php @@ -2,7 +2,6 @@ namespace App\Filament\Server\Resources\DatabaseResource\Pages; -use App\Facades\Activity; use App\Filament\Components\Forms\Actions\RotateDatabasePasswordAction; use App\Filament\Components\Tables\Columns\DateTimeColumn; use App\Filament\Server\Resources\DatabaseResource; @@ -82,12 +81,7 @@ class ListDatabases extends ListRecords ViewAction::make() ->modalHeading(fn (Database $database) => 'Viewing ' . $database->database), DeleteAction::make() - ->after(function (Database $database) { - Activity::event('server:database.delete') - ->subject($database) - ->property('name', $database->database) - ->log(); - }), + ->using(fn (Database $database, DatabaseManagementService $service) => $service->delete($database)), ]); } diff --git a/app/Services/Databases/DatabaseManagementService.php b/app/Services/Databases/DatabaseManagementService.php index 56a723c95..b82c06934 100644 --- a/app/Services/Databases/DatabaseManagementService.php +++ b/app/Services/Databases/DatabaseManagementService.php @@ -118,11 +118,18 @@ class DatabaseManagementService */ public function delete(Database $database): ?bool { - $database->dropDatabase($database->database); - $database->dropUser($database->username, $database->remote); - $database->flush(); + return $this->connection->transaction(function () use ($database) { + $database->dropDatabase($database->database); + $database->dropUser($database->username, $database->remote); + $database->flush(); - return $database->delete(); + Activity::event('server:database.delete') + ->subject($database) + ->property('name', $database->database) + ->log(); + + return $database->delete(); + }); } /**