Files
mtgonline/backend/scripts/add_image_url_column.py
T

59 lines
1.8 KiB
Python

#!/usr/bin/env python3
"""
Add image_url column to mtg_sets table in the database.
"""
import asyncio
import sys
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
from sqlalchemy.orm import sessionmaker
from sqlalchemy import text
sys.path.insert(0, '/home/wall-o/projects/mtgonline/backend')
from app.core.settings import get_settings
async def add_image_url_column():
"""Add image_url column to mtg_sets table."""
settings = get_settings()
engine = create_async_engine(settings.MTG_DATABASE_URL)
async_session = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
async with async_session() as session:
# Check if column already exists
result = await session.execute(text("""
SELECT column_name FROM information_schema.columns
WHERE table_name = 'mtg_sets' AND column_name = 'image_url'
"""))
existing = result.fetchone()
if existing:
print("✓ image_url column already exists in mtg_sets table")
return
# Add the column
print("Adding image_url column to mtg_sets table...")
await session.execute(text("""
ALTER TABLE mtg_sets
ADD COLUMN image_url TEXT
"""))
print("✓ image_url column added successfully")
# Verify
result = await session.execute(text("""
SELECT column_name FROM information_schema.columns
WHERE table_name = 'mtg_sets' AND column_name = 'image_url'
"""))
verified = result.fetchone()
if verified:
print("✓ Column verified in database")
else:
print("✗ Column not found after addition")
await engine.dispose()
if __name__ == "__main__":
asyncio.run(add_image_url_column())