diff --git a/database/migrations/2026_04_19_235904_backfill_utls_for_legacy_servers.php b/database/migrations/2026_04_19_235904_backfill_utls_for_legacy_servers.php new file mode 100644 index 0000000..0222030 --- /dev/null +++ b/database/migrations/2026_04_19_235904_backfill_utls_for_legacy_servers.php @@ -0,0 +1,48 @@ +where('type', 'vless') + ->orderBy('id') + ->chunkById(200, function ($servers) { + foreach ($servers as $server) { + $settings = json_decode($server->protocol_settings ?? '', true); + if (!is_array($settings) || (int) ($settings['tls'] ?? 0) != 2) { + continue; + } + + $existing = $settings['utls'] ?? null; + if (is_array($existing) && ($existing['enabled'] ?? false) === true) { + continue; + } + + $settings['utls'] = [ + 'enabled' => true, + 'fingerprint' => is_array($existing) && !empty($existing['fingerprint']) + ? $existing['fingerprint'] + : 'chrome', + ]; + + DB::table('v2_server') + ->where('id', $server->id) + ->update(['protocol_settings' => json_encode($settings)]); + } + }); + } + + public function down(): void + { + } +};