fs-lawrisk/tools/inspect_remote_data.py

73 lines
2.4 KiB
Python
Raw Normal View History

import os
import pg8000
import sys
def load_env(env_path='.env'):
config = {}
if not os.path.exists(env_path):
# try parent
env_path = os.path.join('..', '.env')
if not os.path.exists(env_path):
print(f"Warning: {env_path} not found")
return config
with open(env_path, 'r', encoding='utf-8') as f:
for line in f:
line = line.strip()
if not line or line.startswith('#'):
continue
if '=' in line:
key, value = line.split('=', 1)
config[key.strip()] = value.strip()
return config
def inspect_remote_db():
config = load_env()
with open('remote_inspection_output.txt', 'w', encoding='utf-8') as f:
def log(msg):
print(msg)
f.write(str(msg) + "\n")
log("\nConnecting to licensing_risks database...")
try:
conn = pg8000.connect(
user=config.get('LIC_PG_USER', 'postgres'),
password=config.get('LIC_PG_PASSWORD'),
host=config.get('LIC_PG_HOST', 'localhost'),
port=int(config.get('LIC_PG_PORT', 5432)),
database=config.get('LIC_PG_DATABASE', 'licensing_risks')
)
log("✅ Connection successful!")
cursor = conn.cursor()
log("\n--- Listing Tables ---\n")
cursor.execute("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'")
tables = cursor.fetchall()
for table in tables:
log(table[0])
log("\n--- Checking Users/Accounts ---\n")
log("Found table: auth_users")
cursor.execute(f"SELECT * FROM auth_users") # Get all users to find the specific one
users = cursor.fetchall()
for user in users:
log(user)
# Print columns
cursor.execute(f"SELECT column_name, data_type FROM information_schema.columns WHERE table_name = 'auth_users'")
cols = cursor.fetchall()
log("\nColumns:")
for col in cols:
log(col)
conn.close()
except Exception as e:
log(f"❌ Database error: {e}")
if __name__ == "__main__":
inspect_remote_db()