#!/bin/bash # Load environment variables from .env or .env.local if [ -f .env ]; then export $(grep -v '^#' .env | grep -v '^$' | xargs) elif [ -f .env.local ]; then export $(grep -v '^#' .env.local | grep -v '^$' | xargs) else echo "Error: No .env or .env.local file found" exit 1 fi # Check if required variables are set if [ -z "$DB_HOST" ] || [ -z "$DB_PORT" ] || [ -z "$DB_USER" ] || [ -z "$DB_NAME" ]; then echo "Error: Required database environment variables not set" exit 1 fi echo "Verifying database schema..." echo "Connecting to: $DB_HOST:$DB_PORT/$DB_NAME as $DB_USER" echo "" # Verify books table echo "=== Checking books table ===" PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c "\d books" 2>&1 if [ $? -eq 0 ]; then echo "✓ books table exists" else echo "✗ books table not found" fi echo "" # Verify stationery table echo "=== Checking stationery table ===" PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c "\d stationery" 2>&1 if [ $? -eq 0 ]; then echo "✓ stationery table exists" else echo "✗ stationery table not found" fi echo "" # Verify indexes echo "=== Checking indexes ===" PGPASSWORD="$DB_PASSWORD" psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c " SELECT tablename, indexname, indexdef FROM pg_indexes WHERE schemaname = 'public' AND (tablename = 'books' OR tablename = 'stationery') ORDER BY tablename, indexname; " 2>&1 echo "" echo "Schema verification complete!"