From fffdd53a608c79b64d18a72398435c634d5db6ac Mon Sep 17 00:00:00 2001 From: Rainer Bendig Date: Sat, 18 Jan 2025 21:59:17 +0100 Subject: [PATCH] =?UTF-8?q?Added=20support=20in=20DB::prohibitDestructiveC?= =?UTF-8?q?ommands=20to=20preventing=20destructive=20Rollback=E2=80=A6=20(?= =?UTF-8?q?#54238)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added support in DB::prohibitDestructiveCommands to prohibit RollbackCommand Signed-off-by: Rainer Bendig * fixed use of Illuminate\Console\Command; Signed-off-by: Rainer Bendig --------- Signed-off-by: Rainer Bendig --- .../Database/Console/Migrations/RollbackCommand.php | 9 ++++++--- src/Illuminate/Support/Facades/DB.php | 2 ++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Illuminate/Database/Console/Migrations/RollbackCommand.php b/src/Illuminate/Database/Console/Migrations/RollbackCommand.php index 0a88ec5a1a0..8846a5e376c 100755 --- a/src/Illuminate/Database/Console/Migrations/RollbackCommand.php +++ b/src/Illuminate/Database/Console/Migrations/RollbackCommand.php @@ -2,7 +2,9 @@ namespace Illuminate\Database\Console\Migrations; +use Illuminate\Console\Command; use Illuminate\Console\ConfirmableTrait; +use Illuminate\Console\Prohibitable; use Illuminate\Database\Migrations\Migrator; use Symfony\Component\Console\Attribute\AsCommand; use Symfony\Component\Console\Input\InputOption; @@ -10,7 +12,7 @@ #[AsCommand('migrate:rollback')] class RollbackCommand extends BaseCommand { - use ConfirmableTrait; + use ConfirmableTrait, Prohibitable; /** * The console command name. @@ -53,8 +55,9 @@ public function __construct(Migrator $migrator) */ public function handle() { - if (! $this->confirmToProceed()) { - return 1; + if ($this->isProhibited() || + ! $this->confirmToProceed()) { + return Command::FAILURE; } $this->migrator->usingConnection($this->option('database'), function () { diff --git a/src/Illuminate/Support/Facades/DB.php b/src/Illuminate/Support/Facades/DB.php index cc282903ec7..c2d4249727d 100644 --- a/src/Illuminate/Support/Facades/DB.php +++ b/src/Illuminate/Support/Facades/DB.php @@ -5,6 +5,7 @@ use Illuminate\Database\Console\Migrations\FreshCommand; use Illuminate\Database\Console\Migrations\RefreshCommand; use Illuminate\Database\Console\Migrations\ResetCommand; +use Illuminate\Database\Console\Migrations\RollbackCommand; use Illuminate\Database\Console\WipeCommand; /** @@ -132,6 +133,7 @@ public static function prohibitDestructiveCommands(bool $prohibit = true) FreshCommand::prohibit($prohibit); RefreshCommand::prohibit($prohibit); ResetCommand::prohibit($prohibit); + RollbackCommand::prohibit($prohibit); WipeCommand::prohibit($prohibit); }