Create db_init.py

This commit is contained in:
Telkaoss 2025-05-23 04:03:25 +02:00 committed by GitHub
parent 6f1c16ee06
commit a7bfa9dcd2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -0,0 +1,34 @@
"""Initialisation de la base de données."""
import asyncio
from sqlalchemy import text
from sqlalchemy.ext.asyncio import create_async_engine
from .base import Base
from .models.apikey_model import APIKeyModel
from stream_fusion.settings import settings
async def init_db():
"""Initialise la base de données et crée les tables si elles n'existent pas."""
engine = create_async_engine(str(settings.pg_url))
async with engine.begin() as conn:
# Créer les tables si elles n'existent pas
await conn.run_sync(Base.metadata.create_all)
# Vérifier si la colonne proxied_links existe
result = await conn.execute(
text("""
SELECT column_name
FROM information_schema.columns
WHERE table_name='api_keys' AND column_name='proxied_links'""")
)
if not result.fetchone():
# Ajouter la colonne si elle n'existe pas
await conn.execute(
text("ALTER TABLE api_keys ADD COLUMN IF NOT EXISTS proxied_links BOOLEAN DEFAULT FALSE")
)
print("✅ Colonne 'proxied_links' ajoutée à la table 'api_keys'")
await engine.dispose()
print("✅ Base de données initialisée avec succès")