You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.7 KiB
55 lines
1.7 KiB
#!/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()
|