Guia de Conexão ao Banco de Dados¶
Este documento explica como qualquer membro do time Dito e Feito pode se conectar ao banco de dados PostgreSQL hospedado no Supabase.
Informações do Banco¶
| Campo | Valor |
|---|---|
| Plataforma | Supabase |
| Banco | PostgreSQL 15 |
| Host | db.szjbimreoiehjitzatda.supabase.co |
| Porta | 5432 |
| Database | postgres |
| Usuário | postgres |
| Senha | ️ Solicitar ao responsável do banco |
Nunca compartilhe a senha em arquivos commitados no repositório. Use sempre variáveis de ambiente.
String de Conexão¶
Substitua [SENHA] pela senha fornecida pelo responsável do banco de dados.
Como conectar por contexto¶
Python puro (psycopg2)¶
Usado pelo Gustavo no Colab para salvar resultados da IA.
import psycopg2
import os
conn = psycopg2.connect(os.environ["DATABASE_URL"])
cursor = conn.cursor()
# Exemplo: inserir um parlamentar
cursor.execute("""
INSERT INTO parlamentar (id_externo, nome_civil, sigla_partido, sigla_uf)
VALUES (%s, %s, %s, %s)
ON CONFLICT (id_externo) DO NOTHING
""", (12345, "Nome do Parlamentar", "PT", "SP"))
conn.commit()
cursor.close()
conn.close()
FastAPI com SQLAlchemy¶
Usado pelo Gustavo no backend.
1. Instalar dependências:
2. Criar arquivo .env na raiz do projeto:
3. Configurar a conexão no FastAPI:
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
import os
from dotenv import load_dotenv
load_dotenv()
engine = create_engine(os.environ["DATABASE_URL"])
SessionLocal = sessionmaker(bind=engine)
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
Google Colab (IA/NLP)¶
Usado pelo Gustavo para conectar os experimentos de NLP ao banco.
import psycopg2
from google.colab import userdata
# No Colab, salvar a senha em: Secrets (ícone de chave no menu lateral)
# Nome do secret: DATABASE_URL
DATABASE_URL = userdata.get('DATABASE_URL')
conn = psycopg2.connect(DATABASE_URL)
print("Conexão estabelecida com sucesso!")
No Google Colab use a aba Secrets (ícone de chave no menu esquerdo) para guardar a URL de conexão com segurança, sem expor no código.
️ pgAdmin 4 (local)¶
Para visualizar e gerenciar o banco graficamente.
- Abre o pgAdmin 4
- Clica com botão direito em Servers → Register → Server
- Preenche as informações:
| Campo | Valor |
|---|---|
| Name | Dito e Feito - Supabase |
| Host | db.szjbimreoiehjitzatda.supabase.co |
| Port | 5432 |
| Database | postgres |
| Username | postgres |
| Password | (solicitar ao responsável) |
- Clica em Save e conecta.
Tabelas disponíveis¶
| Tabela | Descrição |
|---|---|
parlamentar |
Dados dos deputados e senadores |
discurso |
Pronunciamentos com embeddings (pgvector) |
proposicao |
Projetos de lei e proposições |
votacao |
Sessões de votação com embeddings da ementa |
voto |
Voto individual de cada parlamentar |
score_coerencia |
Scores calculados pela IA/NLP |
Boas práticas de segurança¶
- Sempre use variáveis de ambiente para a senha
- Adicione
.envno.gitignoredo projeto - No Colab use a aba Secrets para guardar credenciais
- Nunca commite senha, token ou string de conexão no código
- Nunca compartilhe a string de conexão em canais públicos (issues, PRs, Discord)
Responsável pelo banco¶
| Nome | GitHub | Função |
|---|---|---|
| Indiano | @seu-github | Banco de Dados / Scrum Master |
Dúvidas sobre o schema ou acesso ao banco? Abre uma issue com a label
databaseou chama diretamente no grupo.