Files
mtgonline/backend/scripts/inspect_db.py
T

71 lines
2.2 KiB
Python

"""Inspect the actual database schema from the running containers."""
import psycopg2
import json
def inspect():
conn = psycopg2.connect(
host="172.18.0.2", port=5432,
dbname="mtgdata", user="mtgonline", password="mtgonline_pass"
)
cur = conn.cursor()
# Get actual mtg_cards columns
cur.execute("""
SELECT column_name, data_type, column_default
FROM information_schema.columns
WHERE table_name = 'mtg_cards'
ORDER BY ordinal_position
""")
cards_cols = cur.fetchall()
print("=== mtg_cards columns ===")
for row in cards_cols:
print(f" {row[0]}: {row[1]} (default: {row[2]})")
# Get actual mtg_sets columns
cur.execute("""
SELECT column_name, data_type, column_default
FROM information_schema.columns
WHERE table_name = 'mtg_sets'
ORDER BY ordinal_position
""")
sets_cols = cur.fetchall()
print("\n=== mtg_sets columns ===")
for row in sets_cols:
print(f" {row[0]}: {row[1]} (default: {row[2]})")
# Check counts
cur.execute("SELECT COUNT(*) FROM mtg_cards")
print(f"\nmtg_cards count: {cur.fetchone()[0]}")
cur.execute("SELECT COUNT(*) FROM mtg_sets")
print(f"mtg_sets count: {cur.fetchone()[0]}")
# Sample card
print("\n=== Sample card (first row) ===")
cur.execute("SELECT * FROM mtg_cards LIMIT 1")
col_names = [d[0] for d in cur.description]
row = cur.fetchone()
for c, v in zip(col_names, row):
print(f" {c}: {v}")
# Sample set
print("\n=== Sample set (first row) ===")
cur.execute("SELECT * FROM mtg_sets LIMIT 1")
col_names = [d[0] for d in cur.description]
row = cur.fetchone()
for c, v in zip(col_names, row):
print(f" {c}: {v}")
# Distinct rarities
cur.execute("SELECT DISTINCT rarity FROM mtg_cards ORDER BY rarity")
print(f"\nDistinct rarities: {[r[0] for r in cur.fetchall()]}")
# Distinct layouts
cur.execute("SELECT DISTINCT layout FROM mtg_cards ORDER BY layout")
print(f"Distinct layouts: {[r[0] for r in cur.fetchall()]}")
cur.close()
conn.close()
if __name__ == "__main__":
inspect()