feat: migration file for versioning
This commit is contained in:
@@ -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();
|
||||||
Reference in New Issue
Block a user