diff --git a/app/database/migrations/2026_05_25_120000_add_direct_platform_to_supplier_projects.php b/app/database/migrations/2026_05_25_120000_add_direct_platform_to_supplier_projects.php index 9f9ccfde..764f9735 100644 --- a/app/database/migrations/2026_05_25_120000_add_direct_platform_to_supplier_projects.php +++ b/app/database/migrations/2026_05_25_120000_add_direct_platform_to_supplier_projects.php @@ -23,6 +23,13 @@ return new class extends Migration { public function up(): void { + // 1) Расширить platform-колонки до VARCHAR(8) (было VARCHAR(4): "DIRECT" не вмещается). + // supplier_manual_sync_queue.platform уже VARCHAR(8) — пропускаем. + DB::statement('ALTER TABLE supplier_projects ALTER COLUMN platform TYPE VARCHAR(8)'); + DB::statement('ALTER TABLE project_supplier_links ALTER COLUMN platform TYPE VARCHAR(8)'); + DB::statement('ALTER TABLE supplier_leads ALTER COLUMN platform TYPE VARCHAR(8)'); + + // 2) Расширить CHECK constraints на enum значения. DB::statement('ALTER TABLE supplier_projects DROP CONSTRAINT chk_supplier_projects_platform'); DB::statement("ALTER TABLE supplier_projects ADD CONSTRAINT chk_supplier_projects_platform CHECK (platform IN ('B1','B2','B3','DIRECT'))"); @@ -37,10 +44,16 @@ return new class extends Migration // запускает migrate:rollback. На prod — отдельный cleanup SQL до отката: // DELETE FROM project_supplier_links WHERE platform='DIRECT'; // DELETE FROM supplier_projects WHERE platform='DIRECT'; + // DELETE FROM supplier_leads WHERE platform='DIRECT'; DB::statement('ALTER TABLE supplier_projects DROP CONSTRAINT chk_supplier_projects_platform'); DB::statement("ALTER TABLE supplier_projects ADD CONSTRAINT chk_supplier_projects_platform CHECK (platform IN ('B1','B2','B3'))"); DB::statement('ALTER TABLE project_supplier_links DROP CONSTRAINT chk_psl_platform'); DB::statement("ALTER TABLE project_supplier_links ADD CONSTRAINT chk_psl_platform CHECK (platform IN ('B1','B2','B3'))"); + + // Сужение TYPE обратно к VARCHAR(4) — только если все значения помещаются (B1/B2/B3 = 2 символа). + DB::statement('ALTER TABLE supplier_leads ALTER COLUMN platform TYPE VARCHAR(4)'); + DB::statement('ALTER TABLE project_supplier_links ALTER COLUMN platform TYPE VARCHAR(4)'); + DB::statement('ALTER TABLE supplier_projects ALTER COLUMN platform TYPE VARCHAR(4)'); } };