kashafaman123/Phase_3_Back
0
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()