Spaces:
Running
Running
| #!/usr/bin/env python3 | |
| """ | |
| Database initialization script for AI Language Tutor | |
| Run this script to create database tables | |
| """ | |
| import asyncio | |
| import sys | |
| import os | |
| # Add the project root to Python path | |
| sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| from backend.database import create_tables, drop_tables | |
| import logging | |
| logging.basicConfig(level=logging.INFO) | |
| logger = logging.getLogger(__name__) | |
| async def init_database(): | |
| """Initialize database tables""" | |
| try: | |
| logger.info("Creating database tables...") | |
| await create_tables() | |
| logger.info("Database tables created successfully!") | |
| except Exception as e: | |
| logger.error(f"Error creating database tables: {e}") | |
| raise | |
| async def reset_database(): | |
| """Reset database (drop and recreate tables)""" | |
| try: | |
| logger.info("Dropping existing tables...") | |
| await drop_tables() | |
| logger.info("Creating new tables...") | |
| await create_tables() | |
| logger.info("Database reset successfully!") | |
| except Exception as e: | |
| logger.error(f"Error resetting database: {e}") | |
| raise | |
| if __name__ == "__main__": | |
| import argparse | |
| parser = argparse.ArgumentParser(description="Database initialization for AI Language Tutor") | |
| parser.add_argument( | |
| "--reset", | |
| action="store_true", | |
| help="Reset database (drop and recreate tables)" | |
| ) | |
| args = parser.parse_args() | |
| if args.reset: | |
| print("⚠️ WARNING: This will delete all existing data!") | |
| confirm = input("Are you sure you want to reset the database? (yes/no): ") | |
| if confirm.lower() == "yes": | |
| asyncio.run(reset_database()) | |
| else: | |
| print("Database reset cancelled.") | |
| else: | |
| asyncio.run(init_database()) |