PostgreSQL
Connect via the Astapa proxy.
Python SDK
terminal
pip install astapapython
from astapa import Astapa
client = Astapa(
api_url="http://localhost:8080",
proxy_host="localhost",
proxy_port=5433,
)
session = client.create_session(project_id="my-project")
session.connect(database="mydb", user="postgres", password="pass")
session.execute("UPDATE users SET status = 'active' WHERE id = 1")
print(session.diff())
session.propose()
session.approve()Context manager
python
with client.session(
project_id="demo",
database="mydb",
user="postgres",
password="pass",
) as session:
session.execute("INSERT INTO orders (user_id, amount) VALUES (1, 99.99)")
# auto-proposes on exitDirect connection
python
import psycopg2
conn = psycopg2.connect(
host="localhost",
port=5433,
database="mydb",
user="postgres",
password="pass",
options=f"-c astapa_session={session.id}"
)Session methods
| execute(sql) | Run SQL (writes go to shadow) |
| diff() | Changes by table |
| mutations() | Chronological log |
| propose() | Submit for review |
| approve() | Apply to production |
| reject() | Discard changes |
Supported
PostgreSQL 14+, Aurora, Supabase, Neon