Spaces:
Running
Running
| # 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() | |