From 2224661b762480d6cf56e9db7b9ac689d2d43eee Mon Sep 17 00:00:00 2001 From: Rotimi Best Date: Mon, 10 Jun 2024 15:52:14 +0100 Subject: [PATCH] feat: migration file for versioning --- ...40610132742_lesson_language_versioning.sql | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 supabase/migrations/20240610132742_lesson_language_versioning.sql diff --git a/supabase/migrations/20240610132742_lesson_language_versioning.sql b/supabase/migrations/20240610132742_lesson_language_versioning.sql new file mode 100644 index 00000000..9be4088b --- /dev/null +++ b/supabase/migrations/20240610132742_lesson_language_versioning.sql @@ -0,0 +1,25 @@ +CREATE TABLE lesson_language_history ( + id SERIAL PRIMARY KEY, + lesson_language_id INTEGER REFERENCES lesson_language(id), + old_content TEXT, + new_content TEXT, + timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE FUNCTION update_lesson_language_history() + RETURNS trigger AS $$ +BEGIN + IF TG_OP IN ('INSERT', 'UPDATE') THEN + INSERT INTO lesson_language_history (lesson_language_id, old_content, new_content) + VALUES (NEW.id, COALESCE(OLD.content, ''), NEW.content); + END IF; + RETURN NULL; +END; +$$ LANGUAGE plpgsql; + + +CREATE TRIGGER update_lesson_language_history_trigger +AFTER INSERT +OR +UPDATE ON lesson_language for each row +EXECUTE PROCEDURE update_lesson_language_history(); \ No newline at end of file