Add trigger that ensures row in template_redacted is created

when adding new template through a migration
This commit is contained in:
Pea Tyczynska
2019-06-11 13:26:16 +01:00
parent 0ca7d4a20c
commit ce6f1a5572

View File

@@ -21,6 +21,32 @@ def upgrade():
;
""")
op.execute("""
create or replace function insert_redacted()
returns trigger AS
$$
BEGIN
INSERT INTO template_redacted (template_id, redact_personalisation, updated_at, updated_by_id)
SELECT templates.id, FALSE, now(), templates.created_by_id
FROM templates
WHERE templates.id NOT IN (SELECT template_id FROM template_redacted WHERE template_id = templates.id);
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
""")
op.execute("""
CREATE TRIGGER insert_template_redacted AFTER INSERT ON templates
FOR EACH ROW
EXECUTE PROCEDURE insert_redacted();
""")
def downgrade():
pass
op.execute("""
drop trigger insert_template_redacted ON templates
""")
op.execute("""
drop function insert_redacted();
""")