import sqlite3 import os # Define database path BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) DB_PATH = os.path.join(BASE_DIR, 'database', 'Web', 'Web_App.sqlite') def init_db(): print(f"Initializing Web database at: {DB_PATH}") # Create directory if not exists os.makedirs(os.path.dirname(DB_PATH), exist_ok=True) conn = sqlite3.connect(DB_PATH) cursor = conn.cursor() # Create Tables tables = [ """ CREATE TABLE IF NOT EXISTS team_lineups ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, description TEXT, player_ids_json TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); """, """ CREATE TABLE IF NOT EXISTS player_metadata ( steam_id_64 TEXT PRIMARY KEY, notes TEXT, tags TEXT, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); """, """ CREATE TABLE IF NOT EXISTS strategy_boards ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, map_name TEXT, data_json TEXT, created_by TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); """, """ CREATE TABLE IF NOT EXISTS wiki_pages ( id INTEGER PRIMARY KEY AUTOINCREMENT, path TEXT UNIQUE, title TEXT, content TEXT, updated_by TEXT, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); """, """ CREATE TABLE IF NOT EXISTS comments ( id INTEGER PRIMARY KEY AUTOINCREMENT, user_id TEXT, username TEXT, target_type TEXT, target_id TEXT, content TEXT, likes INTEGER DEFAULT 0, is_hidden INTEGER DEFAULT 0, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); """ ] for sql in tables: try: cursor.execute(sql) print("Executed SQL successfully.") except Exception as e: print(f"Error executing SQL: {e}") conn.commit() conn.close() print("Web database initialized successfully.") if __name__ == '__main__': init_db()