Problem
You’re using Postgres.app on a Mac for local development but are getting SQL errors from your application. You’re seeing an error message:
ERROR: current transaction is aborted, commands ignored until end of
transaction block
This isn’t very useful: you want to know which query is generating the error.
Solution
Turn on Postgres' logging and watch the log files when the error is generated.
This is done by editing
~/Library/Application Support/Postgres/var/postgresql.conf
and setting:
logging_collector = on
log_directory = 'pg_log'
then restarting Postgres to pick up the new settings. You can then watch the log files to find out which queries are failing:
tail -f ~/Library/Application\ Support/Postgres/var/pg_log/*
Discussion
By default, Postgres.app does not have logging enabled which makes local debugging difficult.