Files
buzz/migrations/0044_project_state.sql
John Tennant a0978649f4 Merge origin/main into project state read model
* origin/main:
  feat(buzz-agent): add DatabricksAuthCoordinator single-flight OAuth (#5545)
  fix(desktop): preserve keyring identity during recovery (#7203)
  feat(mobile): prepare `buzz-push-gateway` for deployment (#7158)
  ci: relax file-size ceilings by surface (#6485)
  fix(mobile): isolate extension linker flags; complete iOS build in CI (#7187)

Signed-off-by: John Tennant <jtennant@squareup.com>

# Conflicts:
#	crates/buzz-db/src/runtime/migration.rs
2026-09-01 16:11:52 -04:00

24 lines
1.2 KiB
SQL

CREATE TABLE project_state_heads (
community_id UUID NOT NULL REFERENCES communities(id),
project_owner BYTEA NOT NULL CHECK (octet_length(project_owner) = 32),
project_d_tag TEXT NOT NULL CHECK (project_d_tag <> ''),
revision BIGINT NOT NULL CHECK (revision > 0),
deleted BOOLEAN NOT NULL DEFAULT FALSE,
identity_event_id BYTEA NOT NULL CHECK (octet_length(identity_event_id) = 32),
last_event_id BYTEA NOT NULL CHECK (octet_length(last_event_id) = 32),
updated_at TIMESTAMPTZ NOT NULL DEFAULT transaction_timestamp(),
PRIMARY KEY (community_id, project_owner, project_d_tag)
);
CREATE TABLE project_related_channels (
community_id UUID NOT NULL,
project_owner BYTEA NOT NULL CHECK (octet_length(project_owner) = 32),
project_d_tag TEXT NOT NULL CHECK (project_d_tag <> ''),
channel_id UUID NOT NULL,
PRIMARY KEY (community_id, project_owner, project_d_tag, channel_id),
FOREIGN KEY (community_id, project_owner, project_d_tag)
REFERENCES project_state_heads (community_id, project_owner, project_d_tag)
ON DELETE CASCADE
);
SELECT attach_community_write_fence('project_state_heads');
SELECT attach_community_write_fence('project_related_channels');