CoolFace
Apppublic

kashafaman123/Phase_3_Back

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes
initialize_db.py51 linesDownload Raw Back to root
1"""2Database initialization script3Creates all required tables if they don't exist4"""5import sys6import os7from dotenv import load_dotenv8from sqlmodel import SQLModel, create_engine9 10# Load environment variables from .env file11load_dotenv()12 13# Add the src directory to the path14sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'src'))15 16from src.models import User, Task17from src.models.conversation import Conversation18from src.models.message import Message19from src.config import get_settings20 21setting = get_settings()22 23 24def initialize_database():25    print(f"Initializing database with URL: {setting.database_url}")26    # Create engine27    engine = create_engine(setting.database_url, echo=True)28 29    # Create all tables30    print("Creating tables...")31    SQLModel.metadata.create_all(engine)32    print("Tables created successfully!")33 34    # Verify tables exist35    from sqlalchemy import inspect36    inspector = inspect(engine)37    table_names = inspector.get_table_names()38    print(f"Current tables in database: {table_names}")39 40    required_tables = ['users', 'tasks', 'conversations', 'messages']41    missing_tables = [table for table in required_tables if table not in table_names]42 43    if missing_tables:44        print(f"Missing tables: {missing_tables}")45        return False46    else:47        print("All required tables exist!")48        return True49 50if __name__ == "__main__":51    initialize_database()