import asyncio import os from sqlalchemy.ext.asyncio import create_async_engine from sqlalchemy import text from dotenv import load_dotenv load_dotenv() raw_url = os.getenv("DATABASE_URL") if not raw_url: raw_url = "postgresql://admin:PASSWORD_111@postgres-db:5432/service_finder" DATABASE_URL = raw_url.replace("postgresql://", "postgresql+asyncpg://").replace("/service_finder_db", "/service_finder") async def upgrade_db(): print(f"🔌 Kapcsolódás...") engine = create_async_engine(DATABASE_URL) async with engine.begin() as conn: print("🌍 Felhasználói tábla bővítése (Ország + Alapértelmezett pénznem)...") # 1. Users tábla bővítése await conn.execute(text(""" ALTER TABLE data.users ADD COLUMN IF NOT EXISTS country VARCHAR(2) DEFAULT 'HU', ADD COLUMN IF NOT EXISTS default_currency VARCHAR(3) DEFAULT 'HUF'; """)) print("💶 Költség tábla bővítése (Tranzakciós pénznem)...") # 2. Costs tábla bővítése await conn.execute(text(""" ALTER TABLE data.costs ADD COLUMN IF NOT EXISTS currency VARCHAR(3) DEFAULT 'HUF'; """)) # Frissítjük a meglévő Demo Usert (ID=1) print("👤 Demo User beállítása: Magyarország / HUF") await conn.execute(text(""" UPDATE data.users SET country = 'HU', default_currency = 'HUF' WHERE id = 1; """)) print("✅ KÉSZ! Az adatbázis mostantól támogatja a több pénznemet.") await engine.dispose() if __name__ == "__main__": asyncio.run(upgrade_db())