ALTER TABLE bgp_speaker ADD COLUMN deployment_generation BIGINT NOT NULL DEFAULT 0; ALTER TABLE bgp_speaker ADD COLUMN deployment_request_sequence BIGINT NOT NULL DEFAULT 0; ALTER TABLE bgp_speaker ADD COLUMN deployment_job_id UUID; ALTER TABLE bgp_speaker ADD COLUMN delivery_owner TEXT; ALTER TABLE bgp_speaker ADD COLUMN delivery_token BIGINT NOT NULL DEFAULT 0; ALTER TABLE bgp_speaker ADD COLUMN delivery_until TIMESTAMPTZ; CREATE TABLE deployment_speaker ( job_id UUID NOT NULL REFERENCES job_audit(id) ON DELETE CASCADE, tenant_id UUID NOT NULL REFERENCES tenant(id) ON DELETE CASCADE, speaker_id UUID NOT NULL REFERENCES bgp_speaker(id) ON DELETE CASCADE, revision_id UUID NOT NULL, generation BIGINT NOT NULL, request_sequence BIGINT NOT NULL, state TEXT NOT NULL, confirmation TEXT NOT NULL DEFAULT '', error_message TEXT NOT NULL DEFAULT '', health_received_at TIMESTAMPTZ, health_observation_token BIGINT NOT NULL DEFAULT 0, health_revision_id TEXT NOT NULL DEFAULT '', health_source_at TEXT NOT NULL DEFAULT '', health_error TEXT NOT NULL DEFAULT '', retry_round INTEGER NOT NULL DEFAULT 0, dispatch_attempts INTEGER NOT NULL DEFAULT 0, updated_at TIMESTAMPTZ NOT NULL DEFAULT now(), PRIMARY KEY(job_id,speaker_id) ); CREATE INDEX deployment_speaker_tenant_job ON deployment_speaker(tenant_id,job_id);