CoolFace
Apppublic

creativesar/taskflow

sourceHugging Faceupdated 8mo agoView on Hugging Face
0likes
setup_database.py53 linesDownload Raw Back to root
1"""2Database Setup Script3Executes schema.sql on Neon PostgreSQL4"""5import asyncio6import asyncpg7import sys8 9 10async def setup_database(connection_string: str):11    """Execute schema.sql on the database"""12    # Read schema file13    with open('schema.sql', 'r') as f:14        schema_sql = f.read()15 16    # Connect to database17    print(f"Connecting to database...")18    conn = await asyncpg.connect(connection_string)19 20    try:21        # Execute schema22        print("Executing schema...")23        await conn.execute(schema_sql)24        print("[SUCCESS] Schema executed successfully!")25 26        # Verify tables created27        tables = await conn.fetch(28            "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' ORDER BY table_name"29        )30        print("\n[SUCCESS] Tables created:")31        for row in tables:32            print(f"  - {row['table_name']}")33 34        # Verify indexes35        indexes = await conn.fetch(36            "SELECT indexname FROM pg_indexes WHERE schemaname = 'public' ORDER BY indexname"37        )38        print("\n[SUCCESS] Indexes created:")39        for row in indexes:40            print(f"  - {row['indexname']}")41 42    except Exception as e:43        print(f"[ERROR] {e}")44        sys.exit(1)45    finally:46        await conn.close()47        print("\n[SUCCESS] Connection closed")48 49 50if __name__ == "__main__":51    connection_string = "postgresql://neondb_owner:npg_bnUiEAxH23Sm@ep-cold-mountain-ahrkqbkl-pooler.c-3.us-east-1.aws.neon.tech/neondb?sslmode=require"52    asyncio.run(setup_database(connection_string))53