fix(replication): clean drop in reverse order and purge recyclebin during fresh migrations

This commit is contained in:
Jérémy Munsch 2026-08-28 17:40:26 +02:00
parent b4f3c0bdb9
commit 72a4278ca6
Signed by: forge-joniko
GPG key ID: D7EFE2F5CB6CC0E4

View file

@ -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