18 lines
617 B
SQL
18 lines
617 B
SQL
-- +goose Up
|
|
-- E1C: unique projection apply per envelope; no-replace is enforced in SQL + consumer.
|
|
CREATE TABLE IF NOT EXISTS event_projection_outcomes (
|
|
source_event_id TEXT PRIMARY KEY,
|
|
doc_id TEXT NOT NULL,
|
|
version_no INT NOT NULL,
|
|
snapshot_id BIGINT NOT NULL DEFAULT 0,
|
|
applied BOOLEAN NOT NULL DEFAULT FALSE,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS uq_projection_doc_version
|
|
ON event_projection_outcomes (doc_id, version_no);
|
|
|
|
-- +goose Down
|
|
DROP INDEX IF EXISTS uq_projection_doc_version;
|
|
DROP TABLE IF EXISTS event_projection_outcomes;
|