Сейчас я нахожусь в середине перехода от SQLite к Postgresql, и я столкнулся с этой проблемой. Следующий подготовленный оператор работает с SQLite:
id = 5
st = ActiveRecord::Base.connection.raw_connection.prepare("DELETE FROM my_table WHERE id = ?")
st.execute(id)
st.close
К сожалению, он не работает с Postgresql - он выдает исключение в строке 2. Я искал решения и наткнулся на это:
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 ])
Это не работает в строке 3. Когда я печатаю исключение, подобное этому
rescue => ex
ex содержит это
{"connection":{}}
Выполняется SQL в командной строке. Любая идея, что я делаю неправильно?
Спасибо заранее!