'DECIMAL(10,2) DEFAULT 0', 'Luz' => 'DECIMAL(10,2) DEFAULT 0', 'Agua' => 'DECIMAL(10,2) DEFAULT 0', 'Impuestos' => 'DECIMAL(10,2) DEFAULT 0' ]; foreach ($columnas_necesarias as $nombre_columna => $tipo_columna) { // Verificar si la columna existe $result = $conexion->query("SHOW COLUMNS FROM gastos LIKE '$nombre_columna'"); if ($result->num_rows === 0) { // Si no existe, agregarla $sql = "ALTER TABLE gastos ADD COLUMN `$nombre_columna` $tipo_columna"; if ($conexion->query($sql)) { echo "✓ Columna '$nombre_columna' agregada correctamente\n"; } else { throw new Exception("Error al agregar columna '$nombre_columna': " . $conexion->error); } } else { echo "✓ Columna '$nombre_columna' ya existe\n"; } } // Verificar que haya al menos un registro de gastos $result = $conexion->query("SELECT COUNT(*) as count FROM gastos"); $count = $result->fetch_assoc()['count']; if ($count === 0) { // Insertar un registro de gasto por defecto si no existe $sql = "INSERT INTO gastos (Periodo_Desde, Periodo_Hasta, Sueldo, Luz, Agua, Impuestos) VALUES (CURDATE(), NULL, 0, 0, 0, 0)"; if ($conexion->query($sql)) { echo "✓ Registro de gasto inicial creado\n"; } else { throw new Exception("Error al crear registro inicial: " . $conexion->error); } } echo "\n✓ Migración de gastos completada exitosamente\n"; echo json_encode(['success' => true, 'message' => 'Migración completada']); } catch (Exception $e) { echo json_encode(['success' => false, 'error' => $e->getMessage()]); } ?>