chore: script de migración para quitar base URL de endpoints
Recorre company_endpoints y elimina el prefijo api_base_url de las URLs absolutas, dejando solo la ruta relativa. Dry-run por defecto (?run=1 para ejecutar). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
43933bfe3a
commit
b349230362
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/../config/env.php';
|
||||
require_once __DIR__ . '/../config/db.php';
|
||||
|
||||
$isDry = ($_GET['run'] ?? '') !== '1';
|
||||
|
||||
header('Content-Type: text/html; charset=utf-8');
|
||||
echo '<pre style="font-family:monospace;font-size:13px;padding:20px">';
|
||||
echo ($isDry ? "🔍 DRY RUN — ningún cambio se aplicará\n" : "🚀 EJECUTANDO — actualizando la DB\n");
|
||||
echo str_repeat('─', 60) . "\n\n";
|
||||
|
||||
$companies = db()->query("SELECT id, name, api_base_url FROM companies WHERE api_base_url IS NOT NULL AND api_base_url != ''")->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$totalUpdated = 0;
|
||||
|
||||
foreach ($companies as $co) {
|
||||
$base = rtrim($co['api_base_url'], '/');
|
||||
$eps = db()->prepare("SELECT id, endpoint_key, url FROM company_endpoints WHERE company_id = ? AND url IS NOT NULL AND url != ''");
|
||||
$eps->execute([$co['id']]);
|
||||
$rows = $eps->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$hits = [];
|
||||
foreach ($rows as $ep) {
|
||||
$url = $ep['url'];
|
||||
if (!str_starts_with($url, $base)) continue;
|
||||
$suffix = substr($url, strlen($base));
|
||||
if ($suffix === '') $suffix = '/';
|
||||
$hits[] = ['id' => $ep['id'], 'key' => $ep['endpoint_key'], 'before' => $url, 'after' => $suffix];
|
||||
}
|
||||
|
||||
if (empty($hits)) continue;
|
||||
|
||||
echo "🏢 {$co['name']} (id={$co['id']})\n";
|
||||
echo " Base: {$base}\n";
|
||||
foreach ($hits as $h) {
|
||||
echo " [{$h['key']}]\n";
|
||||
echo " antes: {$h['before']}\n";
|
||||
echo " después: {$h['after']}\n";
|
||||
if (!$isDry) {
|
||||
db()->prepare("UPDATE company_endpoints SET url = ? WHERE id = ?")->execute([$h['after'], $h['id']]);
|
||||
}
|
||||
$totalUpdated++;
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
echo str_repeat('─', 60) . "\n";
|
||||
if ($totalUpdated === 0) {
|
||||
echo "✅ Ningún endpoint tiene la base URL como prefijo. Nada que cambiar.\n";
|
||||
} elseif ($isDry) {
|
||||
echo "📋 {$totalUpdated} endpoint(s) serían modificados.\n";
|
||||
echo " → Para aplicar: abre este script con ?run=1\n";
|
||||
} else {
|
||||
echo "✅ {$totalUpdated} endpoint(s) actualizados.\n";
|
||||
}
|
||||
|
||||
echo '</pre>';
|
||||
Reference in New Issue
Block a user