Add full monorepo: virtual-banker, backend, frontend, docs, scripts, deployment
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
99
scripts/diagnose-blockscout-schema-issue.sh
Executable file
99
scripts/diagnose-blockscout-schema-issue.sh
Executable file
@@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Script to diagnose why Blockscout can't see migrations_status table
|
||||
# even though it exists when checked from postgres
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
VMID=5000
|
||||
|
||||
echo "=========================================="
|
||||
echo "Blockscout Schema/Connection Diagnosis"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
|
||||
# Check if running from Proxmox host or inside container
|
||||
if [ -f "/proc/1/cgroup" ] && grep -q "lxc" /proc/1/cgroup 2>/dev/null; then
|
||||
EXEC_PREFIX=""
|
||||
echo "Running inside VMID 5000"
|
||||
else
|
||||
EXEC_PREFIX="pct exec $VMID --"
|
||||
echo "Running from Proxmox host, executing in VMID 5000"
|
||||
fi
|
||||
|
||||
# Step 1: Check what schema the table is in
|
||||
echo "=== Step 1: Checking migrations_status table location ==="
|
||||
$EXEC_PREFIX docker exec blockscout-postgres psql -U blockscout -d blockscout -c "
|
||||
SELECT
|
||||
table_schema,
|
||||
table_name,
|
||||
table_type
|
||||
FROM information_schema.tables
|
||||
WHERE table_name = 'migrations_status';
|
||||
" 2>&1
|
||||
|
||||
echo ""
|
||||
|
||||
# Step 2: Check current search_path
|
||||
echo "=== Step 2: Checking PostgreSQL search_path ==="
|
||||
$EXEC_PREFIX docker exec blockscout-postgres psql -U blockscout -d blockscout -c "SHOW search_path;" 2>&1
|
||||
|
||||
echo ""
|
||||
|
||||
# Step 3: Check Blockscout DATABASE_URL
|
||||
echo "=== Step 3: Checking Blockscout DATABASE_URL ==="
|
||||
BLOCKSCOUT_CONTAINER=$($EXEC_PREFIX docker ps -a | grep blockscout | grep -v postgres | awk '{print $1}' | head -1)
|
||||
if [ -n "$BLOCKSCOUT_CONTAINER" ]; then
|
||||
$EXEC_PREFIX docker inspect --format='{{range .Config.Env}}{{println .}}{{end}}' $BLOCKSCOUT_CONTAINER | grep -E "DATABASE_URL|POSTGRES" | head -5
|
||||
else
|
||||
echo "⚠️ Blockscout container not found"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# Step 4: Try to access table with explicit schema
|
||||
echo "=== Step 4: Testing table access with different schemas ==="
|
||||
$EXEC_PREFIX docker exec blockscout-postgres psql -U blockscout -d blockscout << 'SQL'
|
||||
-- Try public schema
|
||||
SELECT 'Testing public.migrations_status:' as test;
|
||||
SELECT COUNT(*) FROM public.migrations_status LIMIT 1;
|
||||
|
||||
-- List all schemas
|
||||
SELECT 'Available schemas:' as info;
|
||||
SELECT schema_name FROM information_schema.schemata;
|
||||
|
||||
-- Check if table exists in public schema
|
||||
SELECT 'Table in public schema:' as check;
|
||||
SELECT table_name, table_schema
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'public' AND table_name = 'migrations_status';
|
||||
SQL
|
||||
|
||||
echo ""
|
||||
|
||||
# Step 5: Check if Blockscout is using a different database
|
||||
echo "=== Step 5: Checking all databases ==="
|
||||
$EXEC_PREFIX docker exec blockscout-postgres psql -U blockscout -d blockscout -c "\l" 2>&1 | head -15
|
||||
|
||||
echo ""
|
||||
|
||||
# Step 6: Try to query from Blockscout's perspective
|
||||
echo "=== Step 6: Testing query from Blockscout container ==="
|
||||
if [ -n "$BLOCKSCOUT_CONTAINER" ]; then
|
||||
echo "Attempting to query from Blockscout container..."
|
||||
$EXEC_PREFIX docker exec -it $BLOCKSCOUT_CONTAINER bin/blockscout eval "
|
||||
case Explorer.Repo.query(\"SELECT table_name FROM information_schema.tables WHERE table_name = 'migrations_status'\") do
|
||||
{:ok, %{rows: []}} -> IO.puts(\"❌ migrations_status NOT FOUND by Blockscout\")
|
||||
{:ok, %{rows: rows}} -> IO.puts(\"✅ migrations_status FOUND by Blockscout: #{inspect(rows)}\")
|
||||
error -> IO.puts(\"❌ Error querying: #{inspect(error)}\")
|
||||
end
|
||||
" 2>&1 || echo "⚠️ Cannot query from Blockscout container (may not be running)"
|
||||
else
|
||||
echo "⚠️ Cannot test - container not found"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "Diagnosis Complete"
|
||||
echo "=========================================="
|
||||
|
||||
Reference in New Issue
Block a user