mirror of
https://github.com/block/buzz.git
synced 2026-10-27 20:41:57 +00:00
13 lines
578 B
PL/PgSQL
13 lines
578 B
PL/PgSQL
-- channels.community_id is immutable: a channel can never be re-tenanted.
|
|
-- (Conformance: "Migration lint forbids channel re-tenanting except through an
|
|
-- explicitly modeled admission path." We have no such path, so: hard block.)
|
|
CREATE FUNCTION channels_community_id_immutable() RETURNS TRIGGER AS $$
|
|
BEGIN
|
|
IF NEW.community_id IS DISTINCT FROM OLD.community_id THEN
|
|
RAISE EXCEPTION 'channels.community_id is immutable (channel % cannot be re-tenanted)', OLD.id
|
|
USING ERRCODE = 'check_violation';
|
|
END IF;
|
|
RETURN NEW;
|
|
END;
|
|
$$ LANGUAGE plpgsql;
|