#!/usr/bin/env python import psycopg2 # Connect directly to the database try: conn = psycopg2.connect( dbname="imam_javad_db", user="postgres", password="123456789", host="localhost", port="5432" ) cursor = conn.cursor() print("Connected to database successfully") except Exception as e: print(f"Failed to connect to database: {e}") exit(1) # Add missing transmitter fields fields_to_add = [ ('kunya', 'VARCHAR(255) NULL'), ('known_as', 'VARCHAR(255) NULL'), ('nickname', 'VARCHAR(255) NULL'), ('origin', 'VARCHAR(255) NULL'), ('lived_in', 'VARCHAR(255) NULL'), ('died_in', 'VARCHAR(255) NULL'), ('age_at_death', 'INTEGER NULL'), ('reliability', "VARCHAR(20) DEFAULT 'unknown'"), ('madhhab', "VARCHAR(20) DEFAULT 'unknown'"), ('in_sahih_bukhari', 'BOOLEAN DEFAULT FALSE'), ('in_sahih_muslim', 'BOOLEAN DEFAULT FALSE'), ('created_at', 'TIMESTAMP WITH TIME ZONE DEFAULT NOW()'), ('updated_at', 'TIMESTAMP WITH TIME ZONE DEFAULT NOW()'), ] print("Adding missing transmitter fields...") for field_name, field_type in fields_to_add: try: cursor.execute(f'ALTER TABLE hadis_transmitters ADD COLUMN IF NOT EXISTS {field_name} {field_type};') print(f'✓ Added column: {field_name}') except Exception as e: print(f'✗ Error adding {field_name}: {e}') conn.commit() print('All missing transmitter fields added successfully!') # Test if the fields exist cursor.execute("SELECT column_name FROM information_schema.columns WHERE table_name = 'hadis_transmitters' AND column_name = 'kunya';") result = cursor.fetchone() if result: print('✓ kunya column exists in database') else: print('✗ kunya column not found') conn.close()