import time, threading, urllib.request
from justapi import JustAPIApp, Database
# TODO: set JUSTAPI_PG_URL or pass via env var — never commit live credentials
URL = None # overridden by environment
app = JustAPIApp()
app.set_database(
URL,
init_sql="CREATE TABLE IF NOT EXISTS dbpool_demo (id SERIAL PRIMARY KEY, name TEXT, qty INT)",
)
# FOOTGUN FIX: app.db must work BEFORE run() (no server started yet).
assert app.db is not None, "app.db was None before run()"
pre = app.db.query("SELECT 1 AS ok")
assert pre == [{"ok": 1}], pre
print("PRE-RUN app.db OK:", pre)
app.db.execute("DELETE FROM dbpool_demo")
app.db.execute("INSERT INTO dbpool_demo (name, qty) VALUES (?, ?)", ["alpha", 10])
seed = app.db.query("SELECT * FROM dbpool_demo ORDER BY id")
print("PRE-RUN SEED:", seed)
@app.get("/pre")
def pre(req):
return {"rows": app.db.query("SELECT count(*) AS c FROM dbpool_demo")}
srv = threading.Thread(target=lambda: app.run("127.0.0.1:8124"), daemon=True)
srv.start()
time.sleep(2.0)
with urllib.request.urlopen("http://127.0.0.1:8124/pre", timeout=10) as r:
print("RUNTIME:", r.read().decode())
print("FOOTGUN FIX VERIFIED")