File size: 1,506 Bytes
eb7d5cc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import asyncio
import os
import sys
from dotenv import load_dotenv
load_dotenv()
database_url = os.environ.get("DATABASE_URL", "")
if not database_url:
from backend.config.settings import settings
database_url = settings.DATABASE_URL
dsn = database_url.replace("postgresql+asyncpg://", "postgresql://")
async def inspect_and_migrate():
import asyncpg
print(f"Connecting to: {dsn.split('@')[-1]}")
conn = await asyncpg.connect(dsn)
# Check approvals columns
cols = await conn.fetch("SELECT column_name FROM information_schema.columns WHERE table_name = 'approvals'")
col_names = [c["column_name"] for c in cols]
print(f"Approvals columns: {col_names}")
# Check if 'status' vs 'state'
status_col = "status" if "status" in col_names else "state"
print(f"Using approvals status column: {status_col}")
# Execute full schema
from backend.infrastructure.database.postgres_store import init_schema
await init_schema()
print("Schema initialization succeeded!")
# List all tables in pabot_db
tables = await conn.fetch("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name")
print("\nVerified Tables in pabot_db:")
for t in tables:
count = await conn.fetchval(f"SELECT COUNT(*) FROM {t['table_name']}")
print(f" • {t['table_name']}: {count} records")
await conn.close()
if __name__ == "__main__":
asyncio.run(inspect_and_migrate())
|