現在、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
元にはこれが含まれています
{"connection":{}}
コマンドラインでSQLを実行すると機能します。私が間違っていることは何ですか?
前もって感謝します!