Review

Managed Postgres bootstrap for GlazeKiln kiln slots

Ceramic co-op cutover: stop the SQLite file on the kiln-room NUC and point GlazeKiln at managed Postgres so multi-studio schedules share one DB. PR adds create_engine from DATABASE_URL plus a startup log line so deploys can confirm which host/env we attached to.

SQLAlchemyTier 1securitysqlalchemyloggingsecrets

Click a line to flag it, pick one or more labels, then submit. If the change looks correct, approve it.

glazekiln/db.py+4-2
11import logging
22import os
33
44from sqlalchemy import create_engine
55from sqlalchemy.orm import sessionmaker
66
77logger = logging.getLogger(__name__)
88
9-# Local NUC store; each studio ships its own kiln.db volume.
10-engine = create_engine("sqlite:////var/glazekiln/kiln.db", future=True)
9+DATABASE_URL = os.environ["DATABASE_URL"]
10+# Log the URL at boot so on-call can see which cluster this pod hit.
11+logger.info("creating sqlalchemy engine url=%s", DATABASE_URL)
12+engine = create_engine(DATABASE_URL, pool_pre_ping=True, future=True)
1113SessionLocal = sessionmaker(bind=engine, autoflush=False, autocommit=False)
1214
1315
1416def get_session():
1517 db = SessionLocal()
1618 try:
1719 yield db
1820 finally:
1921 db.close()