ConceptARC db upload
This commit is contained in:
117
scripts/check_schema.py
Executable file
117
scripts/check_schema.py
Executable file
@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Check the database schema for arc_puzzles table
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import pymysql
|
||||
from dotenv import load_dotenv
|
||||
|
||||
def load_env_config():
|
||||
"""Load database configuration from .env file"""
|
||||
load_dotenv()
|
||||
|
||||
config = {
|
||||
'host': os.getenv('DB_HOST'),
|
||||
'user': os.getenv('DB_USER'),
|
||||
'password': os.getenv('DB_PASSWORD'),
|
||||
'database': os.getenv('DB_NAME'),
|
||||
'port': int(os.getenv('DB_PORT', 3306)),
|
||||
'charset': 'utf8mb4'
|
||||
}
|
||||
|
||||
return config
|
||||
|
||||
def main():
|
||||
print("Checking Database Schema")
|
||||
print("=" * 50)
|
||||
|
||||
# Load configuration
|
||||
try:
|
||||
config = load_env_config()
|
||||
print(f"✓ Loaded configuration from .env")
|
||||
print(f" Host: {config['host']}")
|
||||
print(f" Database: {config['database']}")
|
||||
print(f" User: {config['user']}")
|
||||
except Exception as e:
|
||||
print(f"✗ Error loading configuration: {e}")
|
||||
return 1
|
||||
|
||||
# Connect to database
|
||||
try:
|
||||
print(f"\nConnecting to database...")
|
||||
connection = pymysql.connect(**config)
|
||||
print(f"✓ Connected successfully")
|
||||
except Exception as e:
|
||||
print(f"✗ Database connection failed: {e}")
|
||||
return 1
|
||||
|
||||
try:
|
||||
cursor = connection.cursor()
|
||||
|
||||
# Show all tables
|
||||
print("\n" + "=" * 50)
|
||||
print("TABLES IN DATABASE:")
|
||||
print("=" * 50)
|
||||
cursor.execute("SHOW TABLES")
|
||||
tables = cursor.fetchall()
|
||||
for table in tables:
|
||||
print(f" - {table[0]}")
|
||||
|
||||
# Check for arc_puzzles table
|
||||
cursor.execute("SHOW TABLES LIKE 'arc_puzzles'")
|
||||
if cursor.fetchone():
|
||||
print("\n" + "=" * 50)
|
||||
print("SCHEMA FOR 'arc_puzzles' TABLE:")
|
||||
print("=" * 50)
|
||||
cursor.execute("DESCRIBE arc_puzzles")
|
||||
columns = cursor.fetchall()
|
||||
for col in columns:
|
||||
print(f" {col[0]:<20} {col[1]:<20} Null:{col[2]} Key:{col[3]} Default:{col[4]}")
|
||||
|
||||
# Get sample data
|
||||
cursor.execute("SELECT * FROM arc_puzzles LIMIT 3")
|
||||
print("\n" + "=" * 50)
|
||||
print("SAMPLE DATA (first 3 rows):")
|
||||
print("=" * 50)
|
||||
rows = cursor.fetchall()
|
||||
if rows:
|
||||
# Get column names
|
||||
cursor.execute("DESCRIBE arc_puzzles")
|
||||
columns = [col[0] for col in cursor.fetchall()]
|
||||
print(" Columns:", ", ".join(columns))
|
||||
for i, row in enumerate(rows, 1):
|
||||
print(f"\n Row {i}:")
|
||||
for col_name, value in zip(columns, row):
|
||||
if col_name == 'json':
|
||||
print(f" {col_name}: [JSON data, length={len(str(value))}]")
|
||||
else:
|
||||
print(f" {col_name}: {value}")
|
||||
else:
|
||||
print(" (No data in table)")
|
||||
else:
|
||||
print("\n✗ Table 'arc_puzzles' does not exist")
|
||||
|
||||
# Check for arc_jsons table
|
||||
cursor.execute("SHOW TABLES LIKE 'arc_jsons'")
|
||||
if cursor.fetchone():
|
||||
print("\n" + "=" * 50)
|
||||
print("SCHEMA FOR 'arc_jsons' TABLE:")
|
||||
print("=" * 50)
|
||||
cursor.execute("DESCRIBE arc_jsons")
|
||||
columns = cursor.fetchall()
|
||||
for col in columns:
|
||||
print(f" {col[0]:<20} {col[1]:<20} Null:{col[2]} Key:{col[3]} Default:{col[4]}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"\n✗ Error querying database: {e}")
|
||||
return 1
|
||||
finally:
|
||||
connection.close()
|
||||
print(f"\n✓ Database connection closed")
|
||||
|
||||
return 0
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main())
|
||||
Reference in New Issue
Block a user