File size: 1,333 Bytes
0f0ef8d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

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