OliPoli DB (Alpha)
⚠️ Versión Alpha: Esta extensión está en desarrollo activo. Puede contener errores o funcionalidades incompletas. ¡Tu feedback es bienvenido!
OliPoli DB es tu asistente de bases de datos "todo en uno" para Visual Studio Code. Conéctate a Oracle, PostgreSQL, MySQL, SQL Server, Redis y MongoDB sin salir de tu editor favorito.
🚀 Características Principales
- Multi-Motor: Soporte nativo y simultáneo para múltiples tipos de bases de datos.
- Resultados Interactivos: Tabla dinámica con paginación, ordenación y vista detallada en JSON.
- Exportación Rápida: Guarda tus resultados en CSV o JSON con un solo clic.
- Plan de Ejecución Visual: Entiende el rendimiento de tus consultas con diagramas gráficos explicativos.
- Gestión Segura: Tus contraseñas se guardan de forma encriptada en el llavero del sistema operativo (VSCode Secret Storage).
🔧 Requisitos Previos (Solo Oracle)
Para conectarte a bases de datos Oracle, es obligatorio tener instaladas las librerías de Oracle Instant Client en tu sistema.
🪟 Windows
- Descarga el "Basic Package" desde la página oficial de Oracle.
- Descomprime el archivo (ej. en
C:\oracle\instantclient_19_8).
- Añade esa ruta a tu variable de entorno
PATH.
- Configuración > Sistema > Acerca de > Configuración avanzada del sistema > Variables de entorno > Path > Editar > Nueva...
🍎 macOS
Si usas Homebrew, es lo más sencillo:
brew tap InstantClientTap/instantclient
brew install instantclient-basic
Si tienes un Mac con chip M1/M2/M3, asegúrate de tener una versión de Node.js compatible o usar la arquitectura correcta.
🐧 Linux
- Descarga el paquete
.zip o .rpm desde la web de Oracle.
- Instala/descomprime las librerías.
- Asegúrate de configurar
LD_LIBRARY_PATH apuntando al directorio de instalación:
export LD_LIBRARY_PATH=/opt/oracle/instantclient_19_8:$LD_LIBRARY_PATH
📖 Guía de Uso
Toda la interacción se realiza desde la barra lateral de actividades de VS Code. Busca el icono de OliPoli DB (un icono de base de datos) en la barra lateral izquierda.
1. Panel de Conexiones ("Connections")
Aquí verás tus conexiones guardadas. Al pasar el ratón por encima de una conexión, verás estos botones de acción rápida:
| Icono |
Nombre |
Acción |
| $(play) |
Execute Query |
Ejecuta el archivo SQL/MongoDB actual contra esta base de datos. |
| $(graph) |
Explain Plan |
Muestra el diagrama gráfico del plan de ejecución de la consulta actual. |
| $(edit) |
Edit |
Abre el formulario para modificar los datos de la conexión. |
| $(debug-disconnect) |
Disconnect |
Cierra la conexión activa (útil para liberar recursos). |
| $(trash) |
Delete |
Elimina la conexión de tu lista permanentemente. |
| $(refresh) |
Refresh |
Recarga la lista de tablas y vistas del explorador. |
Si despliegas una conexión, verás sus esquemas, tablas y vistas. Haz clic derecho sobre cualquier tabla o colección para acceder a funciones rápidas:
- 🔢 Select Top 50: Genera y ejecuta automáticamente una consulta para ver las primeras 50 filas. ¡Perfecto para explorar datos rápidamente!
- abc Count Records: Ejecuta un
COUNT(*) o countDocuments() para decirte al instante cuántos registros tiene esa tabla/colección.
3. Ejecutar Consultas (SQL / MongoDB)
- Abre o crea un archivo (extensión
.sql para relacionales, .mongodb o .js para Mongo).
- Escribe tu consulta.
- Pulsa el botón Play $(play) en la conexión que quieras usar (en la barra lateral) para ejecutarla en ese sistema.
- O usa el atajo
Cmd+Enter (Mac) / Ctrl+Enter (Win/Lin) y selecciona la conexión en la lista desplegable.
Los resultados aparecerán automáticamente en el Panel de Resultados inferior.
📊 Panel de Resultados
Cada vez que ejecutas una consulta, se abre este panel interactivo:
- Tabla/JSON Toggle: Usa los botones superiores para alternar entre vista tabular clásica o vista de árbol JSON (útil para MongoDB o campos JSON).
- Paginación: Navega por grandes conjuntos de datos sin bloquear tu editor.
- Exportar: Botones dedicados para descargar los resultados actuales a CSV o JSON.
- Filtros: (Próximamente) Filtra los resultados directamente en la tabla.
🐛 Feedback y Soporte
Si encuentras algún error o tienes una sugerencia, por favor abre un issue en nuestro repositorio de GitHub.
Licencia: ISC