diff --git a/database/migrations/2026_01_30_150000_add_missing_columns_to_sales_scenario_checklists_table.php b/database/migrations/2026_01_30_150000_add_missing_columns_to_sales_scenario_checklists_table.php index fd081f3..8c8c9e9 100644 --- a/database/migrations/2026_01_30_150000_add_missing_columns_to_sales_scenario_checklists_table.php +++ b/database/migrations/2026_01_30_150000_add_missing_columns_to_sales_scenario_checklists_table.php @@ -3,6 +3,7 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; +use Illuminate\Support\Facades\DB; return new class extends Migration { @@ -62,26 +63,27 @@ public function up(): void }); // 인덱스 추가 (이미 존재하면 무시) - Schema::table('sales_scenario_checklists', function (Blueprint $table) { - $sm = Schema::getConnection()->getDoctrineSchemaManager(); - $indexes = $sm->listTableIndexes('sales_scenario_checklists'); - - // UNIQUE KEY 추가 - if (!isset($indexes['sales_scenario_checkpoint_unique'])) { + // UNIQUE KEY 추가 + $uniqueExists = DB::select("SHOW INDEX FROM sales_scenario_checklists WHERE Key_name = 'sales_scenario_checkpoint_unique'"); + if (empty($uniqueExists)) { + Schema::table('sales_scenario_checklists', function (Blueprint $table) { $table->unique( ['tenant_id', 'scenario_type', 'step_id', 'checkpoint_id'], 'sales_scenario_checkpoint_unique' ); - } + }); + } - // INDEX 추가 - if (!isset($indexes['sales_scenario_checklists_tenant_id_scenario_type_index'])) { + // INDEX 추가 + $indexExists = DB::select("SHOW INDEX FROM sales_scenario_checklists WHERE Key_name = 'sales_scenario_checklists_tenant_id_scenario_type_index'"); + if (empty($indexExists)) { + Schema::table('sales_scenario_checklists', function (Blueprint $table) { $table->index( ['tenant_id', 'scenario_type'], 'sales_scenario_checklists_tenant_id_scenario_type_index' ); - } - }); + }); + } } /**