Zachary Greathouse
Zg/codebase refactor (#20)
5ed9749 unverified
raw
history blame contribute delete
1.06 kB
"""
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)