# 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()