Python 3.8+ MIT License Alpha v0.0.4 282 tests 74% coverage

🗃️ Scavengr

"Descubre lo que tus bases esconden."

Herramienta CLI para extraer, validar y documentar metadatos de bases de datos con inteligencia automática 🧠✨

🚀 Características Principales

Extrae esquemas, genera DBML, crea diccionarios y produce informes analíticos

🔍

Extracción de Metadatos

Soporte para PostgreSQL, MySQL/MariaDB y SQL Server. Extracción completa de tablas, columnas, tipos de datos, relaciones e índices.

📊

Diccionarios de Datos Profesionales

Formato Excel avanzado con 19 campos especializados. Análisis de sensibilidad automático y descripciones inteligentes.

Validación de Esquemas DBML

Validación exhaustiva de sintaxis, estructura y consistencia. Detección de errores en tablas, relaciones y claves. Validaciones proactivas de calidad (CamelCase, tipos, índices, autoreferences).

📈

Reportes Analíticos

Score de calidad en 7 dimensiones. Análisis estadístico y recomendaciones priorizadas por impacto.

Sistema de Caché Inteligente

Caché automático de metadatos con TTL de 24 horas. Reducción del 90% en tiempo de extracciones subsecuentes. Serialización Pickle o JSON.

✅ Flujo de Trabajo Típico

Configuración simple y comandos intuitivos

1. Configuración Inicial

# Una sola vez
scavengr init

2. Extraer Esquema

scavengr extract -o schema.dbml

3. Validar

scavengr validate -i schema.dbml

4. Documentar

scavengr dictionary -i schema.dbml -o dict.xlsx

⚡ Instalación

Múltiples formas de instalar y comenzar a usar Scavengr

Desde PyPI (Recomendado)

# Instalación básica
pip install scavengr

# Verificar instalación
scavengr --version

# Configuración inicial
scavengr init

Desde Fuente (Desarrollo)

# Clonar repositorio
git clone https://github.com/JasRockr/Scavengr.git
cd Scavengr

# Instalar en modo desarrollo
pip install -e .

🎯 Uso Básico

Comandos principales y ejemplos prácticos

Configuración Rápida

# Generar archivo .env automáticamente
scavengr init

# O configuración global
scavengr init --global

Extraer y Validar

# Extraer esquema completo
scavengr extract -o mi-esquema.dbml

# Con caché (90% más rápido)
scavengr extract --cache -o mi-esquema.dbml

# Validar estructura
scavengr validate -i mi-esquema.dbml

Generar Documentación

# Diccionario de datos
scavengr dictionary -i schema.dbml -o diccionario.xlsx

# Reporte analítico
scavengr report -i schema.dbml -o reporte.xlsx

✅ Validación y Calidad de Código (v0.0.4)

Type hints completos • 0 errores mypy • 282/282 tests pasando • 74% coverage

🔍 Type Checking

# Validar tipos de datos (mypy strict)
python -m mypy scavengr/ --strict

# Resultado esperado:
Success: no issues found

🧪 Ejecutar Tests

# Tests unitarios e integración
python -m pytest tests/ -v

# Con cobertura
python -m pytest tests/ --cov=scavengr

📊 Validación Completa

# Type checking + Tests + Linting
python -m mypy scavengr/ --strict && \
python -m pytest tests/ -v && \
python -m flake8 scavengr/

🎨 Formateo Automático

# Black - Formateador
python -m black scavengr/

# isort - Organizar imports
python -m isort scavengr/

📈 Análisis de Coverage

# Generar reporte HTML
python -m pytest tests/ \
--cov=scavengr \
--cov-report=html

# Abrir: htmlcov/index.html

🚀 Instalación Desarrollo

# Con todas las dependencias
pip install -e ".[dev]"

# Pre-commit hooks
pre-commit install

📋 Métricas de Calidad

0
Errores Mypy
51/51
Tests Pasando
100%
Type Coverage
33
Archivos Tipados