-- 0. 公共 -- 来源:docs/architecture/schema-draft.sql(2026-11-03 验证过的草案) CREATE SCHEMA IF NOT EXISTS app; -- 当前事务的租户;api / worker 在事务开始时 SET LOCAL app.tenant_id CREATE FUNCTION current_tenant() RETURNS uuid LANGUAGE sql STABLE AS $$ SELECT nullif(current_setting('app.tenant_id', true), '')::uuid $$; CREATE FUNCTION set_updated_at() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN NEW.updated_at := now(); RETURN NEW; END $$; -- 只追加表:禁止 UPDATE / DELETE CREATE FUNCTION forbid_change() RETURNS trigger LANGUAGE plpgsql AS $$ BEGIN RAISE EXCEPTION '% is append-only', TG_TABLE_NAME; END $$;