Skip to content

Latest commit

 

History

History
237 lines (188 loc) · 6.84 KB

File metadata and controls

237 lines (188 loc) · 6.84 KB

SQLBridge - Lista Completa de Features

✅ Features Implementadas (v1.1.0)

🗄️ Suporte Multi-Banco de Dados

  • MySQL / MariaDB - Suporte completo
  • PostgreSQL - Suporte completo
  • Oracle Database - Suporte completo
  • Microsoft SQL Server - Suporte completo
  • IBM DB2 - Suporte completo
  • IBM Informix - Suporte completo
  • SQLite - Suporte completo

🔄 Traduções Automáticas

Tipos de Dados

  • INTEGER, BIGINT, SMALLINT, TINYINT
  • BOOLEAN (traduz para TINYINT(1), BIT, NUMBER(1), etc.)
  • VARCHAR, TEXT, MEDIUMTEXT, LONGTEXT
  • DATETIME, TIMESTAMP
  • DECIMAL, NUMERIC
  • BLOB, CLOB

Auto-Incremento

  • AUTO_INCREMENT → SERIAL (PostgreSQL)
  • AUTO_INCREMENT → IDENTITY(1,1) (SQL Server)
  • AUTO_INCREMENT → GENERATED AS IDENTITY (Oracle, DB2)
  • AUTO_INCREMENT → AUTOINCREMENT (SQLite)

Paginação

  • LIMIT/OFFSET → LIMIT/OFFSET (MySQL, PostgreSQL, SQLite)
  • LIMIT/OFFSET → OFFSET...FETCH (SQL Server, Oracle, DB2)
  • LIMIT/OFFSET → SKIP...FIRST (Informix)

Funções de Data/Hora

  • CURRENT_TIMESTAMP
  • DATE_ADD / DATE_SUB
  • NOW()
  • Tradução específica para cada banco

Concatenação de Strings

  • CONCAT() → CONCAT() (MySQL)
  • CONCAT() → || (PostgreSQL, Oracle)
  • CONCAT() → + (SQL Server)
  • || → CONCAT() (MySQL)
  • || → + (SQL Server)

📊 SQL Avançado

CTEs (Common Table Expressions)

  • CTEs simples
  • CTEs recursivos
  • Múltiplos CTEs
  • CTEs com JOINs
  • Suporte nativo em todos os bancos modernos

Window Functions

  • ROW_NUMBER()
  • RANK() / DENSE_RANK()
  • LAG() / LEAD()
  • SUM() / AVG() / COUNT() com OVER
  • PARTITION BY
  • ORDER BY em window
  • ROWS BETWEEN
  • NTILE()
  • FIRST_VALUE() / LAST_VALUE()

🛠️ API Python

Classe SQLBridge

  • Detecção automática de dialeto
  • Tradução transparente de SQL
  • Execução de queries
  • Prepared statements
  • Context manager (with statement)
  • Modo debug
  • Execução em lote (execute_many)
  • Scripts SQL (execute_script)

Métodos Principais

  • execute(sql, params) - Executar SQL
  • query(sql, params) - Consultar e retornar resultados
  • query_one(sql, params) - Retornar um único resultado
  • translate(sql) - Traduzir sem executar
  • execute_many(statements) - Executar múltiplos statements
  • execute_script(script) - Executar script completo

🖥️ CLI (Interface de Linha de Comando)

Comandos

  • sqlbridge translate - Traduzir arquivos SQL
  • sqlbridge list - Listar dialetos suportados
  • sqlbridge examples - Mostrar exemplos

Recursos do CLI

  • Tradução de arquivos
  • Suporte a stdin/stdout
  • Modo verbose
  • Múltiplos dialetos
  • Pipeline com outros comandos
  • Tratamento de erros

📚 Documentação

  • README.md completo
  • QUICKSTART.md (guia de 5 minutos)
  • CLI.md (guia completo do CLI)
  • CONTRIBUTING.md (guia para contribuidores)
  • CHANGELOG.md (histórico de versões)
  • Exemplos práticos
  • Docstrings em todas as classes/métodos
  • Type hints

🧪 Testes

  • Testes unitários para todos os dialetos
  • Testes de integração
  • Testes para CTEs
  • Testes para Window Functions
  • Testes cross-dialect
  • Cobertura > 90%

📦 Infraestrutura

  • setup.py configurado
  • pyproject.toml
  • requirements.txt
  • .gitignore
  • LICENSE (MIT)
  • Entry point para CLI
  • Zero dependências externas

🚧 Em Desenvolvimento

Planejado para v1.2.0

  • Stored Procedures - Tradução de procedures
  • Triggers - Tradução de triggers
  • Views - Suporte a views materializadas
  • Índices - Tradução de CREATE INDEX
  • Constraints - Tradução avançada de constraints
  • Plugin VS Code - Extensão para Visual Studio Code
  • Plugin JetBrains - Extensão para IntelliJ/PyCharm

Planejado para v2.0.0

  • Query Builder - API fluente para construir queries
  • Schema Migrations - Geração automática de migrations
  • Schema Diff - Comparar schemas entre bancos
  • ORM Leve - ORM minimalista opcional
  • Async Support - Suporte a async/await
  • Connection Pool - Pool de conexões integrado
  • Query Cache - Cache de queries traduzidas

Planejado para v3.0.0

  • NoSQL Support - MongoDB, Redis, Cassandra
  • GraphQL Bridge - Traduzir GraphQL para SQL
  • REST API - API REST para tradução
  • Web UI - Interface web para testes
  • Performance Profiler - Análise de performance
  • Query Optimizer - Otimização automática de queries

🎯 Comparação com Outras Bibliotecas

SQLBridge vs SQLAlchemy

Feature SQLBridge SQLAlchemy
Simplicidade ✅ SQL nativo ❌ API própria
Curva de aprendizado ✅ Baixa ❌ Alta
Overhead ✅ Zero ❌ Alto
Dependências ✅ Zero ❌ Várias
Tradução SQL ✅ Automática ❌ Manual
ORM ❌ Não ✅ Sim
Migrations 🚧 Em dev ✅ Alembic

SQLBridge vs Outros

Feature SQLBridge PyDAL peewee
SQL Nativo
Multi-DB ✅ 7 bancos
CLI
CTEs
Window Functions
Zero Config

📊 Estatísticas

  • Linhas de código: ~3,500
  • Arquivos Python: 15+
  • Testes: 50+
  • Cobertura: >90%
  • Dialetos suportados: 7
  • Traduções implementadas: 50+
  • Exemplos: 5+
  • Documentação: 1,000+ linhas

🌟 Destaques

Por que usar SQLBridge?

  1. Simplicidade: Escreva SQL padrão, não aprenda nova API
  2. Transparência: Veja exatamente o SQL traduzido
  3. Zero Config: Detecta automaticamente o banco
  4. Leve: Sem dependências externas
  5. Completo: CTEs, Window Functions, CLI
  6. Testado: Cobertura >90%
  7. Documentado: Guias completos e exemplos
  8. Open Source: MIT License

Casos de Uso Ideais

  • ✅ Migração entre bancos de dados
  • ✅ Desenvolvimento multi-banco
  • ✅ Prototipagem rápida
  • ✅ Scripts de migração
  • ✅ CI/CD pipelines
  • ✅ Ferramentas de linha de comando
  • ✅ Aplicações que precisam suportar múltiplos bancos

Quando NÃO usar

  • ❌ Precisa de ORM completo → Use SQLAlchemy
  • ❌ Precisa de migrations complexas → Use Alembic
  • ❌ Aplicação específica para um único banco
  • ❌ Precisa de stored procedures complexas (ainda em dev)

🤝 Contribua!

Quer adicionar uma feature? Veja CONTRIBUTING.md!

📄 Licença

MIT License - Use livremente em projetos comerciais e open source!