Skip to content

Repository files navigation

DatabaseInspector — Explorador de Metadados SQL

Ferramenta Python para análise estrutural de bancos relacionais utilizando SQLAlchemy Inspector.

Permite mapear schemas, tabelas, colunas e relacionamentos de forma automatizada, permitindo inspeção automatizada de schemas, tabelas e relacionamentos.

Objetivo

Facilitar a exploração e análise estrutural de bancos de dados sem dependência de documentação manual.

O DatabaseInspector fornece uma camada de abstração para leitura de metadados, permitindo que sistemas entendam automaticamente o metadados do banco para automação, análise estrutural e geração automática de consultas SQL.

Com isso, é possível:

  • entender bancos desconhecidos mais rapidamente
  • gerar consultas SQL com base na estrutura real do banco
  • evitar queries inválidas ou referências inexistentes
  • automatizar análises e consultas repetitivas
  • reduzir dependência de documentação manual

Nota técnica

Este projeto NÃO trabalha com dados das tabelas, apenas com a estrutura do banco.

Ele atua como uma camada de leitura de metadados, permitindo que outros sistemas entendam como o banco está organizado (schemas, tabelas, colunas e relacionamentos) antes de executar consultas, gerar SQL ou automatizar operações baseadas no schema.

Diferença para ferramentas tradicionais

Ferramentas como DBeaver são focadas em exploração visual e administração manual do banco de dados.

O DatabaseInspector possui uma proposta diferente: permitir que sistemas entendam automaticamente como o banco está organizado através da leitura de metadados, sem a necessidade de acessar os dados das tabelas.

Em vez de depender de navegação manual via interface gráfica, o projeto permite interpretação automatizada da estrutura do banco para uso em automações, validações e ferramentas internas.

Stack

  • Python
  • SQLAlchemy
  • PostgreSQL

Funcionalidades

Estrutura do banco

  • Listagem de schemas
  • Listagem de tabelas por schema
  • Listagem de colunas por tabela

Metadados

  • Chaves primárias (PK)
  • Chaves estrangeiras (FK)
  • Tipos de dados das colunas
  • Nullable

Catálogo completo

  • Geração de estrutura hierárquica do banco
  • Saída em formato dict/JSON
  • Mapeamento completo schema → tabelas → colunas → relações

Instalação

pip install -r requirements.txt

Uso

O projeto já possui um arquivo main.py com exemplo de inicialização e uso da classe DatabaseInspector.

Configure sua conexão no arquivo .env com base no .env.example.

Execute:

python main.py

Exemplos de uso

Schemas

db.get_schemas()

Tabelas

db.get_tables("public")

Colunas

db.get_columns("clientes", schema="public")

Chave primária

db.get_primary_keys("clientes", schema="public")

Chaves estrangeiras

db.get_foreign_keys("pedidos", schema="public")

Catálogo completo

db.get_full_schema()

Saída esperada

schema → tabelas → colunas → relacionamentos

{
"public": {
"clientes": {
"columns": [
{
"name": "id",
"type": "INTEGER",
"nullable": false
}
],
"primary_key": {
"constrained_columns": ["id"]
},
"foreign_keys": []
}
}
}

Casos de uso

  • exploração de bancos desconhecidos
  • inspeção e auditoria de schemas
  • documentação automática de banco
  • análise de relacionamentos entre tabelas
  • geração de contexto estrutural para IA/LLMs

Autor

About

Ferramenta Python para análise estrutural de bancos relacionais

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages