Files
fotkyBuzalkovi/run_migration.py
T
administrator 29037554b8 notebookVb
2026-05-29 06:01:55 +02:00

44 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""One-shot migration: add thumbnail_path column + partial index."""
import os
import sys
from pathlib import Path
import psycopg2
from dotenv import load_dotenv
load_dotenv(Path(__file__).parent / ".env")
conn = psycopg2.connect(
host=os.getenv("DB_HOST"),
port=int(os.getenv("DB_PORT", 5432)),
dbname=os.getenv("DB_NAME"),
user=os.getenv("DB_USER"),
password=os.getenv("DB_PASSWORD"),
connect_timeout=10,
)
conn.autocommit = True
cur = conn.cursor()
print("Step 1: ALTER TABLE ...", flush=True)
cur.execute("ALTER TABLE photos ADD COLUMN IF NOT EXISTS thumbnail_path VARCHAR(2000)")
print(" Done.", flush=True)
print("Step 2: CREATE INDEX CONCURRENTLY ...", flush=True)
cur.execute(
"CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_photos_thumbnail_path_null "
"ON photos (id) WHERE thumbnail_path IS NULL"
)
print(" Done.", flush=True)
cur.execute(
"SELECT column_name FROM information_schema.columns "
"WHERE table_name='photos' AND column_name='thumbnail_path'"
)
row = cur.fetchone()
print(f"Verified column exists: {row is not None}", flush=True)
cur.close()
conn.close()
print("Migration complete.", flush=True)