Files
whatsapp/run_migration_005.php
2026-04-21 21:13:35 -05:00

47 lines
1.9 KiB
PHP

<?php
/**
* Ejecuta la migración 005_registro_exams.sql
* Acceder UNA VEZ desde el navegador como administrador, luego borrar.
*/
require_once __DIR__ . '/config/config.php';
if (!isUserLoggedIn()) { header('Location: ' . BASE_URL . 'login.php'); exit; }
$pdo = Database::getInstance()->getConnection();
$sqlFile = __DIR__ . '/migrations/005_registro_exams.sql';
$sql = file_get_contents($sqlFile);
// Separar sentencias (ignorar comentarios)
$statements = array_filter(array_map('trim', explode(';', $sql)));
$results = [];
foreach ($statements as $stmt) {
if (empty($stmt) || preg_match('/^\s*--/', $stmt)) continue;
try {
$pdo->exec($stmt);
$results[] = ['ok' => true, 'sql' => substr(preg_replace('/\s+/', ' ', $stmt), 0, 120)];
} catch (\PDOException $e) {
$results[] = ['ok' => false, 'sql' => substr(preg_replace('/\s+/', ' ', $stmt), 0, 120), 'error' => $e->getMessage()];
}
}
?><!DOCTYPE html>
<html lang="es"><head><meta charset="UTF-8"><title>Migración 005</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head><body class="p-4">
<h4>Migración 005 — Registro de Exámenes</h4>
<table class="table table-sm table-bordered small">
<thead><tr><th>#</th><th>Estado</th><th>SQL</th><th>Error</th></tr></thead>
<tbody>
<?php foreach ($results as $i => $r): ?>
<tr class="<?= $r['ok'] ? 'table-success' : 'table-danger' ?>">
<td><?= $i+1 ?></td>
<td><?= $r['ok'] ? '✓ OK' : '✗ Error' ?></td>
<td><code><?= htmlspecialchars($r['sql']) ?>…</code></td>
<td><?= htmlspecialchars($r['error'] ?? '') ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="alert alert-warning mt-3">⚠️ Elimina este archivo del servidor después de ejecutarlo.</div>
<a href="<?= BASE_URL ?>erp.php?m=registro_exams&v=lista" class="btn btn-primary">Ir a Registro Exámenes</a>
</body></html>