From 72a4278ca61fe17e714186dda5469f5b853318b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Munsch?= Date: Fri, 28 Aug 2026 17:40:26 +0200 Subject: [PATCH] fix(replication): clean drop in reverse order and purge recyclebin during fresh migrations --- database/arcadia-replicate/Migrator.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/database/arcadia-replicate/Migrator.php b/database/arcadia-replicate/Migrator.php index 04991e1..0e452a7 100644 --- a/database/arcadia-replicate/Migrator.php +++ b/database/arcadia-replicate/Migrator.php @@ -60,6 +60,7 @@ use Database\ArcadiaReplicate\Views\Refp\IncoSocRefIncoView; use Database\ArcadiaReplicate\Views\Refp\SitProdIncoView; use Database\ArcadiaReplicate\Views\Refp\SocDlcIncoView; use Database\ArcadiaReplicate\Views\Refp\VisuelExportGenfiView; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; final class Migrator @@ -130,6 +131,10 @@ final class Migrator public function up(): void { + if (app()->environment('local', 'testing')) { + $this->down(); + } + $schema = Schema::connection($this->connection); foreach (self::DEFINITIONS as $definition) { @@ -144,6 +149,15 @@ final class Migrator foreach (array_reverse(self::DEFINITIONS) as $definition) { $definition::down($schema); } + + $conn = DB::connection($this->connection); + if ($conn->getDriverName() === 'oracle') { + try { + $conn->statement('PURGE RECYCLEBIN'); + } catch (\Throwable $e) { + unset($e); + } + } } public static function runUp(string $connection): void