up
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* run_005_registro_exams.php
|
||||
* Ejecuta la migración 005 — tablas de Registro de Exámenes.
|
||||
*
|
||||
* USO: php run_005_registro_exams.php (o abrirlo en el navegador si el servidor lo permite)
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/config/config.php';
|
||||
|
||||
header('Content-Type: text/plain; charset=utf-8');
|
||||
|
||||
$sqlFile = __DIR__ . '/migrations/005_registro_exams.sql';
|
||||
|
||||
if (!file_exists($sqlFile)) {
|
||||
die("ERROR: No se encontró {$sqlFile}\n");
|
||||
}
|
||||
|
||||
$sql = file_get_contents($sqlFile);
|
||||
|
||||
// Filtrar comentarios de línea y dividir en sentencias
|
||||
$statements = array_filter(
|
||||
array_map('trim', explode(';', $sql)),
|
||||
fn($s) => $s !== '' && !preg_match('/^\s*--/', $s)
|
||||
);
|
||||
|
||||
$pdo = Database::getInstance()->getConnection();
|
||||
$ok = 0;
|
||||
$err = 0;
|
||||
|
||||
foreach ($statements as $stmt) {
|
||||
$stmt = trim($stmt);
|
||||
if ($stmt === '') {
|
||||
continue;
|
||||
}
|
||||
try {
|
||||
$pdo->exec($stmt);
|
||||
echo "OK: " . substr(preg_replace('/\s+/', ' ', $stmt), 0, 80) . "\n";
|
||||
$ok++;
|
||||
} catch (PDOException $e) {
|
||||
$msg = $e->getMessage();
|
||||
// Ignorar errores de "ya existe" (idempotente)
|
||||
if (str_contains($msg, 'already exists') || str_contains($msg, 'Duplicate entry')) {
|
||||
echo "SKIP (ya existe): " . substr($stmt, 0, 60) . "\n";
|
||||
} else {
|
||||
echo "ERROR: {$msg}\n >> " . substr($stmt, 0, 100) . "\n";
|
||||
$err++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
echo "\n─────────────────────────────────\n";
|
||||
echo "Migración 005 completada. OK={$ok} ERRORES={$err}\n";
|
||||
Reference in New Issue
Block a user