876b38bd1b
라이브 pkm DB 가 scan-feature-build 의 365(scan_jobs)·366(pending_command) 을 이미 apply + schema_migrations 스탬프함. 발행 마이그가 365 부터면 러너가 365/366 을 적용필로 보고 스킵 → published 테이블 미생성 → 367 깨짐. 다음 free=367 로 +2 시프트해 회피. 파일 rename + 헤더 주석 + published.py 모델 주석(mig 번호) 동기화. 내용 무변경(멱등 CREATE ... IF NOT EXISTS). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
16 lines
823 B
SQL
16 lines
823 B
SQL
-- 371_publish_outbox.sql
|
|
-- transactional outbox — 저작/4-A 트랜잭션이 같은 tx에서 여기 INSERT(P0-1 규율),
|
|
-- 단일 발행 워커가 id(커밋순) 순으로 drain 하며 published 에 rev 부여(소스 updated_at 폴링 금지=갭 재발).
|
|
-- processed_at = 워커 drain 시 스탬프(NULL=미처리). payload/hash 는 enqueue 시점 스냅샷.
|
|
CREATE TABLE IF NOT EXISTS publish_outbox (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
kind VARCHAR(40) NOT NULL,
|
|
source_id BIGINT NOT NULL,
|
|
payload JSONB NOT NULL,
|
|
payload_hash TEXT NOT NULL,
|
|
schema_version SMALLINT NOT NULL DEFAULT 1,
|
|
deleted BOOLEAN NOT NULL DEFAULT false,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
processed_at TIMESTAMPTZ
|
|
);
|