feat(db): record unique projection outcomes per envelope version
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
-- +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;
|
||||
Reference in New Issue
Block a user