67 lines
2.1 KiB
Python
67 lines
2.1 KiB
Python
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()
|