I’d like to set postgres
statement_timeout for an individual migration. I can’t seem to be able to do this. Here’s my experiment:
def change execute <<~SQL SET LOCAL statement_timeout = 1; -- ms -- this does not cause a timeout which is expected, because pg -- only applies the timeout to the next protocol message / statement, -- and rails sends everthing inside execute in the same statement select pg_sleep(1); -- seconds SQL # if uncommented, this DOES cause a timeout, which is expected # execute <<~SQL # select pg_sleep(1); -- seconds # SQL # this does not cause a timeout, which is unexpected remove_column :foos, :bar # we do get here, which is unexpected raise "we finished" end
How can I do this?