IOI-RUN / fix_schema.py
Roudrigus's picture
Upload 82 files
0f0ef8d verified
# fix_schema.py
# -*- coding: utf-8 -*-
"""
Utilitário rápido para ajustar o schema da tabela 'usuarios' em SQLite:
- Verifica se a coluna 'data_aniversario' existe.
- Se não existir, cria com tipo DATE (compatível com datetime.date via SQLAlchemy).
⚠️ Execute isso no banco ATIVO (Produção/Teste), conforme seu db_router.
"""
from sqlalchemy import text
from banco import engine # usa o mesmo engine do app
def column_exists(conn, table: str, column: str) -> bool:
# SQLite: PRAGMA para listar colunas
res = conn.execute(text(f"PRAGMA table_info({table});")).fetchall()
cols = [row[1] for row in res] # row[1] = nome da coluna
return column in cols
def add_date_column(conn, table: str, column: str):
# SQLite aceita ALTER TABLE ADD COLUMN simples
conn.execute(text(f"ALTER TABLE {table} ADD COLUMN {column} DATE;"))
def main():
with engine.begin() as conn:
if column_exists(conn, "usuarios", "data_aniversario"):
print("✅ Coluna 'data_aniversario' já existe em 'usuarios'.")
else:
print("➕ Criando coluna 'data_aniversario' (DATE) em 'usuarios'...")
add_date_column(conn, "usuarios", "data_aniversario")
print("✅ Coluna criada com sucesso.")
if __name__ == "__main__":
main()