From ff7d047ba324b3b747c277f57b8cc19009df57d5 Mon Sep 17 00:00:00 2001 From: Xurshudyan Date: Thu, 10 Jul 2025 18:54:22 +0400 Subject: [PATCH] Ensure database connection is always restored in usingConnection() --- src/Illuminate/Database/DatabaseManager.php | 6 ++++-- src/Illuminate/Database/Migrations/Migrator.php | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Illuminate/Database/DatabaseManager.php b/src/Illuminate/Database/DatabaseManager.php index 4d3aafc83fe3..1315d207eafd 100755 --- a/src/Illuminate/Database/DatabaseManager.php +++ b/src/Illuminate/Database/DatabaseManager.php @@ -354,9 +354,11 @@ public function usingConnection($name, callable $callback) $this->setDefaultConnection($name); - return tap($callback(), function () use ($previousName) { + try { + return $callback(); + } finally { $this->setDefaultConnection($previousName); - }); + } } /** diff --git a/src/Illuminate/Database/Migrations/Migrator.php b/src/Illuminate/Database/Migrations/Migrator.php index d50c6d6b2d0d..1ad82c2e035d 100755 --- a/src/Illuminate/Database/Migrations/Migrator.php +++ b/src/Illuminate/Database/Migrations/Migrator.php @@ -662,7 +662,11 @@ public function usingConnection($name, callable $callback) $this->setConnection($name); - return tap($callback(), fn () => $this->setConnection($previousConnection)); + try { + return $callback(); + } finally { + $this->setConnection($previousConnection); + } } /**