Retire the SQLite backend — Postgres is the only engine
The dual backend (SQLite via db.js + Postgres via schema.pg.sql) was a maintenance foot-gun: a schema change could land on the SQLite path only and silently 500 every read on prod (it just did, with #18/#13). Production has run on Postgres for weeks, so SQLite is retired: ONE schema source of truth (db/schema.pg.sql), no drift possible. - dbx.js: default DB_BACKEND=pg; an unknown backend now fails loudly at require time instead of silently selecting a stale engine. - Deleted server/db.js, server/db/sqlite.js, server/db/migrate-sqlite-to-pg.js, server/scripts/migrate-bizgaze-only.js (all SQLite-only, none in the runtime path — the running server loads db/pg.js). - Tests (e2e, db-smoke) target Postgres now and fail-fast (skip) unless DATABASE_URL points at a disposable test DB — never SQLite, never prod. - Removed the dead DB_PATH env + fixed misleading SQLite comments in the Dockerfile / docker-compose (kept the /data volume: it holds uploads/recordings/transcripts/downloads, not just the old data.db). - CLAUDE.md: stack + repo-layout + run-locally updated for Postgres-only. Runtime is unaffected (prod already sets DB_BACKEND=pg and pg is a prod dep); this only removes the unused SQLite path. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+4
-3
@@ -1,5 +1,6 @@
|
||||
# BizGaze Support — server image
|
||||
# Node 24 ships node:sqlite as a stable built-in (no flag), which db.js relies on.
|
||||
# Data store is PostgreSQL (DB_BACKEND=pg; the `pg` client is a prod dependency installed below). SQLite was
|
||||
# retired 2026-08-12 — one schema source of truth (db/schema.pg.sql), no dual-maintenance drift.
|
||||
FROM node:24-alpine
|
||||
|
||||
# ffmpeg: server-side video poster thumbnails (see static.js /thumbs/<id>). Small on Alpine.
|
||||
@@ -15,9 +16,9 @@ RUN npm install --omit=dev --no-audit --no-fund
|
||||
# App source
|
||||
COPY server/ ./
|
||||
|
||||
# Served HTTP port (NPM terminates TLS and proxies here). DB lives on a volume.
|
||||
# Served HTTP port (NPM terminates TLS and proxies here). The DB is Postgres (DATABASE_URL, set via .env);
|
||||
# the /data volume holds uploads / recordings / transcripts / downloads (see docker-compose.yml).
|
||||
ENV PORT=8090
|
||||
ENV DB_PATH=/data/data.db
|
||||
EXPOSE 8090
|
||||
|
||||
CMD ["node", "server.js"]
|
||||
|
||||
Reference in New Issue
Block a user