Declaração preparada no Postgresql em Rails
Agora estou no meio da migração do SQLite para o Postgresql e me deparei com esse problema. A seguinte instrução preparada funciona com o SQLite:
id = 5
st = ActiveRecord::Base.connection.raw_connection.prepare("DELETE FROM my_table WHERE id = ?")
st.execute(id)
st.close
Infelizmente, ele não está funcionando com o Postgresql - ele lança uma exceção na linha 2. Eu estava procurando soluções e descobri isso:
id = 5
require 'pg'
conn = PG::Connection.open(:dbname => 'my_db_development')
conn.prepare('statement1', 'DELETE FROM my_table WHERE id = $1')
conn.exec_prepared('statement1', [ id ])
Este falha na linha 3. Quando imprimo a exceção assim
rescue => ex
ex contém este
{"connection":{}}
Executando o SQL em uma linha de comando funciona. Alguma ideia do que estou fazendo errado?
Desde já, obrigado!