From 674bf82309ade5b3e62a2eb58d264f3a9b7e6525 Mon Sep 17 00:00:00 2001 From: lizandrogd <77708265+lizandrogd@users.noreply.github.com> Date: Mon, 19 Jan 2026 23:05:20 -0500 Subject: [PATCH] Update 2026_01_08_195707_update_proveedors_table.php --- ...6_01_08_195707_update_proveedors_table.php | 39 ++++++++++++++----- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/database/migrations/2026_01_08_195707_update_proveedors_table.php b/database/migrations/2026_01_08_195707_update_proveedors_table.php index a10ff0c..487d61b 100644 --- a/database/migrations/2026_01_08_195707_update_proveedors_table.php +++ b/database/migrations/2026_01_08_195707_update_proveedors_table.php @@ -12,12 +12,22 @@ return new class extends Migration public function up(): void { Schema::table('proveedors', function (Blueprint $table) { - // Agregar nuevos campos - $table->string('nit')->nullable()->after('nombre'); - $table->string('categoria')->after('nit'); + // Evitar operaciones que SQLite no maneja correctamente en tests + $driver = Schema::getConnection()->getDriverName(); - // Eliminar campos que no se usarĂ¡n - $table->dropColumn(['contacto', 'correo']); + // Agregar nuevos campos si no existen + if (! Schema::hasColumn('proveedors', 'nit')) { + $table->string('nit')->nullable(); + } + + if (! Schema::hasColumn('proveedors', 'categoria')) { + $table->string('categoria')->nullable(); + } + + // En bases que no son SQLite, eliminar campos antiguos + if ($driver !== 'sqlite') { + $table->dropColumn(['contacto', 'correo']); + } }); } @@ -27,12 +37,21 @@ return new class extends Migration public function down(): void { Schema::table('proveedors', function (Blueprint $table) { - // Restaurar columnas eliminadas - $table->string('contacto')->nullable(); - $table->string('correo')->unique()->nullable(); + $driver = Schema::getConnection()->getDriverName(); - // Eliminar columnas nuevas - $table->dropColumn(['nit', 'categoria']); + // Restaurar columnas eliminadas si no existen + if (! Schema::hasColumn('proveedors', 'contacto')) { + $table->string('contacto')->nullable(); + } + + if (! Schema::hasColumn('proveedors', 'correo')) { + $table->string('correo')->unique()->nullable(); + } + + // En bases no SQLite, eliminar las columnas nuevas + if ($driver !== 'sqlite') { + $table->dropColumn(['nit', 'categoria']); + } }); } };