Casecommons / pg_audit_log

Create a trigger-based audit log for PostgreSQL
MIT License
3 stars 2 forks source link

pg_audit_log will not work on heroku #11

Open danielgrippi opened 9 years ago

danielgrippi commented 9 years ago

1/ Either call out that this line won't work on heroku:

CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;

2/ Create a workaround (plpgsql is enabled by default on postgres 9.3, which is the version running on heroku).

amarshall commented 9 years ago

For reference, what’s the exact error you get?

danielgrippi commented 9 years ago

@amarshall unfortunately, I don't have the exact output, but I can specify the reason:

Since heroku doesn't give its users superuser access to their postgres instances, it's impossible for someone to run a CREATE OR REPLACE PROCEDURAL LANGUAGE command via psql. The function in function.rb will abort at the first line of the SQL setup.

My workaround was to remove the line, as there's no need to ensure plpgsql is present, because it is by default on 9.3.

One solution would be wrapping this line in a BEGIN; EXCEPTION; block. Another would be to remove the line entirely, which would drop support for postgres 8.x versions (seems a bit heavy handed). Thoughts?