Skip to content

PostgreSQL sink

Backend postgres — registry/observation/plain tables in schema pipeline.
Transport: framework/db/postgres/. Adapter: backend_builtins._Postgres*.

datasets:
lemma_vocab:
role: output
backend: postgres
kind: registry
uniq: lemma_token_id
columns:
run_id: { type: string, not_null: true }
lemma_token_id: { type: string, not_null: true }
token_count: { type: int64, not_null: true }
postgres:
connection: postgres_app
schema: pipeline
table: lemma_run_staging_v1
schema_version: "2026.07.3"
on_conflict:
target: [run_id, lemma_token_id]
action: do_update
update_additive: [token_count]
checkpoint: { column: doc_id, every_n: 100 }
metric_defs:
cardinality: { method: count_distinct, column: lemma_token_id }
When What
Deploy ddl_codegenstatic/postgres/migrate-postgres.sh
Run start assert_schema_version
Run INSERT/UPSERT / metric snapshot procs

Forbidden at runtime: CREATE TABLE / ALTER.
Forbidden in platform init: step-specific DDL (bootstrap + generic procs only).

See Saturation. Homogeneity uses a single formula B.