#!/usr/bin/env python3 import sqlite3 # Connect to your database file db_name = "database.db" # Change to your actual file name conn = sqlite3.connect(db_name) cursor = conn.cursor() try: # 1. Create a temporary table with the new text-based game_id cursor.execute( """ CREATE TABLE IF NOT EXISTS twitch_videos_temp ( id TEXT PRIMARY KEY, title TEXT NOT NULL, created_at TEXT NOT NULL, view_count INTEGER NOT NULL, duration TEXT NOT NULL, url TEXT NOT NULL, thumbnail_url TEXT NOT NULL, game_id TEXT NOT NULL, game_name TEXT NOT NULL, stream_id TEXT NOT NULL, creator_name TEXT NOT NULL, clip_is BOOLEAN NOT NULL DEFAULT 0, downloaded BOOLEAN NOT NULL DEFAULT 0, uploaded_yt BOOLEAN NOT NULL DEFAULT 0, uploaded_yt_chats BOOLEAN NOT NULL DEFAULT 0, uploaded_yt_shorts BOOLEAN NOT NULL DEFAULT 0 ) """ ) # 2. Copy and convert data to the temporary table cursor.execute( """ INSERT INTO twitch_videos_temp ( id, title, created_at, view_count, duration, url, thumbnail_url, game_id, game_name, stream_id, creator_name, clip_is, downloaded, uploaded_yt, uploaded_yt_chats, uploaded_yt_shorts ) SELECT id, title, created_at, view_count, duration, url, thumbnail_url, CAST(game_id AS TEXT), game_name, stream_id, creator_name, clip_is, downloaded, uploaded_yt, uploaded_yt_chats, uploaded_yt_shorts FROM twitch_videos """ ) # 3. Drop the old table configuration cursor.execute("DROP TABLE twitch_videos") # 4. Rename the temporary table to your exact original table name cursor.execute("ALTER TABLE twitch_videos_temp RENAME TO twitch_videos") # Commit changes if everything succeeded conn.commit() print("Migration successful! 'twitch_videos' table updated.") except sqlite3.Error as e: # Roll back changes if an error occurs conn.rollback() print(f"An error occurred: {e}") finally: # Close database connection conn.close()