Psycopg Synchronous Connection

Demonstrate a synchronous PostgreSQL workflow with SQLSpec’s Psycopg adapter. Update the DSN via SQLSPEC_PSYCOPG_DSN to point at your database.

SQLSPEC_PSYCOPG_DSN=postgresql://user:pass@host/db \
  uv run python docs/examples/adapters/psycopg/connect_sync.py

Source

 1"""Psycopg configuration for synchronous SQLSpec sessions."""
 2
 3import os
 4
 5from sqlspec.adapters.psycopg import PsycopgSyncConfig
 6from sqlspec.core import SQL
 7
 8__all__ = ("main",)
 9
10
11DSN = os.getenv("SQLSPEC_PSYCOPG_DSN", "postgresql://postgres:postgres@localhost:5432/postgres")
12config = PsycopgSyncConfig(bind_key="docs_psycopg", pool_config={"conninfo": DSN, "min_size": 1, "max_size": 4})
13
14
15def main() -> None:
16    """Open a Psycopg session and fetch version metadata."""
17    with config.provide_session() as session:
18        result = session.execute(SQL("SELECT version() AS version"))
19        row = result.one_or_none()
20        if row:
21            print({"adapter": "psycopg", "version": row["version"]})
22        else:
23            print({"adapter": "psycopg", "version": "unknown"})
24
25
26if __name__ == "__main__":
27    main()