cyber-mysql-openai
Version:
Intelligent natural language to SQL translator with self-correction capabilities using OpenAI and MySQL
54 lines (53 loc) • 1.59 kB
TypeScript
import mysql from "mysql2/promise";
import { DBConfig } from "../types";
import Logger from "../utils/index";
/**
* Clase DBManager que maneja la conexión a la base de datos
*/
export declare class DBManager {
private config;
private logger;
private pool;
constructor(config: DBConfig, logger?: Logger);
/**
* Obtiene o crea el pool de conexiones
*/
getPool(): Promise<mysql.Pool>;
/**
* Cierra la conexión al pool
*/
closePool(): Promise<void>;
/**
* Ejecuta una consulta SQL
* @param sql - Consulta SQL
* @param params - Parámetros para la consulta
* @returns Resultado de la consulta
*/
executeQuery(sql: string, params?: any[]): Promise<any>;
/**
* Ejecuta una consulta SQL de solo lectura, validando primero
* @param sql - Consulta SQL
* @returns Resultado de la consulta
*/
executeReadOnlyQuery(sql: string): Promise<any[]>;
/**
* Obtiene el esquema de la base de datos incluyendo relaciones
* @returns Esquema con columnas y foreign keys por tabla
*/
getDatabaseSchema(): Promise<Record<string, {
columns: any[];
foreignKeys: any[];
}>>;
/**
* Obtiene todas las relaciones Foreign Key de la base de datos
* @returns Lista de relaciones FK
*/
private getForeignKeys;
/**
* Obtiene las columnas de una tabla específica
* @param tableName - Nombre de la tabla
* @returns Columnas de la tabla
*/
getTableColumns(tableName: string): Promise<any[]>;
}
export default DBManager;