refactor: remove obsolete member management API module
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
-- =====================================================
|
||||
-- Optimistic Locking via Version Column
|
||||
--
|
||||
-- Problem: Two admins editing the same member silently
|
||||
-- overwrite each other's changes. Last write wins.
|
||||
--
|
||||
-- Fix: Add version column, auto-increment on update.
|
||||
-- API layer checks version match before writing.
|
||||
-- =====================================================
|
||||
|
||||
-- Add version column
|
||||
ALTER TABLE public.members
|
||||
ADD COLUMN IF NOT EXISTS version integer NOT NULL DEFAULT 1;
|
||||
|
||||
-- Auto-increment version on every update
|
||||
CREATE OR REPLACE FUNCTION public.increment_member_version()
|
||||
RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
SECURITY DEFINER
|
||||
SET search_path = ''
|
||||
AS $$
|
||||
BEGIN
|
||||
NEW.version := OLD.version + 1;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$;
|
||||
|
||||
CREATE TRIGGER trg_members_increment_version
|
||||
BEFORE UPDATE ON public.members
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION public.increment_member_version();
|
||||
Reference in New Issue
Block a user