"feat:enhance-podcast-topic-ai"
This commit is contained in:
102
backend/scripts/run_wavespeed_migration.py
Normal file
102
backend/scripts/run_wavespeed_migration.py
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Migration script to add WaveSpeed provider fields to UsageSummary table
|
||||
Run this script to update the database schema for WaveSpeed usage tracking
|
||||
"""
|
||||
|
||||
import sqlite3
|
||||
import os
|
||||
import sys
|
||||
|
||||
def find_database():
|
||||
"""Find the database file in common locations"""
|
||||
print("🔍 Searching for database files...")
|
||||
|
||||
# Search in current directory and subdirectories
|
||||
for root, dirs, files in os.walk('.'):
|
||||
for file in files:
|
||||
if file.endswith('.db') or file.endswith('.sqlite'):
|
||||
db_path = os.path.join(root, file)
|
||||
print(f"📁 Found database: {db_path}")
|
||||
return db_path
|
||||
|
||||
# Check common paths
|
||||
search_paths = [
|
||||
'./data/alwrity.db',
|
||||
'./alwrity.db',
|
||||
'./database/alwrity.db',
|
||||
'./backend/data/alwrity.db',
|
||||
'./backend/alwrity.db'
|
||||
]
|
||||
|
||||
for path in search_paths:
|
||||
if os.path.exists(path):
|
||||
print(f"📁 Found database at common path: {path}")
|
||||
return path
|
||||
|
||||
print("❌ No database file found in any location")
|
||||
return None
|
||||
|
||||
def run_migration():
|
||||
"""Execute the WaveSpeed migration"""
|
||||
db_path = find_database()
|
||||
|
||||
if not db_path:
|
||||
print("❌ No database file found")
|
||||
print("Please ensure the application has been run at least once to create the database")
|
||||
return False
|
||||
|
||||
print(f"📁 Using database: {db_path}")
|
||||
|
||||
try:
|
||||
conn = sqlite3.connect(db_path)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Check if columns already exist
|
||||
cursor.execute('PRAGMA table_info(usage_summary)')
|
||||
columns = [col[1] for col in cursor.fetchall()]
|
||||
|
||||
wavespeed_cols = [col for col in columns if 'wavespeed' in col]
|
||||
|
||||
if wavespeed_cols:
|
||||
print(f"✅ WaveSpeed columns already exist: {wavespeed_cols}")
|
||||
return True
|
||||
|
||||
print("🔧 Adding WaveSpeed columns to usage_summary table...")
|
||||
|
||||
# Add the columns
|
||||
cursor.execute('ALTER TABLE usage_summary ADD COLUMN wavespeed_calls INTEGER DEFAULT 0')
|
||||
cursor.execute('ALTER TABLE usage_summary ADD COLUMN wavespeed_tokens INTEGER DEFAULT 0')
|
||||
cursor.execute('ALTER TABLE usage_summary ADD COLUMN wavespeed_cost FLOAT DEFAULT 0.0')
|
||||
|
||||
conn.commit()
|
||||
|
||||
# Verify the changes
|
||||
cursor.execute('PRAGMA table_info(usage_summary)')
|
||||
updated_columns = [col[1] for col in cursor.fetchall()]
|
||||
added_wavespeed_cols = [col for col in updated_columns if 'wavespeed' in col]
|
||||
|
||||
print(f"✅ Successfully added WaveSpeed columns: {added_wavespeed_cols}")
|
||||
|
||||
return True
|
||||
|
||||
except sqlite3.Error as e:
|
||||
print(f"❌ SQLite error: {e}")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"❌ Unexpected error: {e}")
|
||||
return False
|
||||
finally:
|
||||
if 'conn' in locals():
|
||||
conn.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("🚀 Running WaveSpeed migration...")
|
||||
success = run_migration()
|
||||
|
||||
if success:
|
||||
print("✅ WaveSpeed migration completed successfully!")
|
||||
print("The system can now track WaveSpeed LLM usage and costs.")
|
||||
else:
|
||||
print("❌ Migration failed. Please check the error messages above.")
|
||||
sys.exit(1)
|
||||
Reference in New Issue
Block a user