diff --git a/backend/migrations/diesel_initial_setup/down.sql b/backend/migrations/diesel_initial_setup/down.sql index 89c493c..0014907 100644 --- a/backend/migrations/diesel_initial_setup/down.sql +++ b/backend/migrations/diesel_initial_setup/down.sql @@ -1,2 +1,2 @@ --- DROP FUNCTION IF EXISTS diesel_manage_updated_at(_tbl regclass); --- DROP FUNCTION IF EXISTS diesel_set_updated_at(); \ No newline at end of file +DROP FUNCTION IF EXISTS diesel_manage_updated_at(_tbl regclass); +DROP FUNCTION IF EXISTS diesel_set_updated_at(); \ No newline at end of file diff --git a/backend/migrations/diesel_initial_setup/up.sql b/backend/migrations/diesel_initial_setup/up.sql index 9ee5837..990dcb0 100644 --- a/backend/migrations/diesel_initial_setup/up.sql +++ b/backend/migrations/diesel_initial_setup/up.sql @@ -1,18 +1,18 @@ --- CREATE OR REPLACE FUNCTION diesel_manage_updated_at(_tbl regclass) RETURNS VOID AS $$ --- BEGIN --- EXECUTE format('CREATE TRIGGER set_updated_at BEFORE UPDATE ON %s --- FOR EACH ROW EXECUTE PROCEDURE diesel_set_updated_at()', _tbl); --- END; --- $$ LANGUAGE plpgsql; +CREATE OR REPLACE FUNCTION diesel_manage_updated_at(_tbl regclass) RETURNS VOID AS $$ +BEGIN + EXECUTE format('CREATE TRIGGER set_updated_at BEFORE UPDATE ON %s + FOR EACH ROW EXECUTE PROCEDURE diesel_set_updated_at()', _tbl); +END; +$$ LANGUAGE plpgsql; --- CREATE OR REPLACE FUNCTION diesel_set_updated_at() RETURNS trigger AS $$ --- BEGIN --- IF ( --- NEW IS DISTINCT FROM OLD AND --- NEW.updated_at IS NOT DISTINCT FROM OLD.updated_at --- ) THEN --- NEW.updated_at := current_timestamp; --- END IF; --- RETURN NEW; --- END; --- $$ LANGUAGE plpgsql; \ No newline at end of file +CREATE OR REPLACE FUNCTION diesel_set_updated_at() RETURNS trigger AS $$ +BEGIN + IF ( + NEW IS DISTINCT FROM OLD AND + NEW.updated_at IS NOT DISTINCT FROM OLD.updated_at + ) THEN + NEW.updated_at := current_timestamp; + END IF; + RETURN NEW; +END; +$$ LANGUAGE plpgsql; \ No newline at end of file