Spaces:
Running
Running
""" | |
init_db_direct.py | |
A simplified script to initialize the database by creating all tables. | |
""" | |
# Standard Library Imports | |
import asyncio | |
import sys | |
# Third-Party Library Imports | |
from sqlalchemy.ext.asyncio import create_async_engine | |
# Local Application Imports | |
from src.common import Config, logger | |
from src.database import Base | |
async def init_tables(): | |
config = Config.get() | |
database_url = config.database_url | |
if not database_url: | |
logger.error("DATABASE_URL is not set in environment variables") | |
return False | |
engine = create_async_engine(database_url, echo=config.debug) | |
try: | |
async with engine.begin() as conn: | |
await conn.run_sync(Base.metadata.create_all) | |
logger.info("Database tables created successfully!") | |
return True | |
except Exception as e: | |
logger.error(f"Error creating tables: {e}") | |
return False | |
finally: | |
await engine.dispose() | |
if __name__ == "__main__": | |
success = asyncio.run(init_tables()) | |
sys.exit(0 if success else 1) | |