Przygotowany komunikat na Postgresql w Railsach
W tej chwili jestem w trakcie migracji z SQLite do Postgresql i natknąłem się na ten problem. Następująca przygotowana instrukcja działa z SQLite:
id = 5
st = ActiveRecord::Base.connection.raw_connection.prepare("DELETE FROM my_table WHERE id = ?")
st.execute(id)
st.close
Niestety nie działa z Postgresql - zgłasza wyjątek w linii 2. Szukałem rozwiązań i natknąłem się na to:
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 ])
Ten nie powiedzie się w linii 3. Kiedy drukuję wyjątek taki jak ten
rescue => ex
ex zawiera to
{"connection":{}}
Wykonywanie SQL w wierszu poleceń działa. Jakiś pomysł, co robię źle?
Z góry dziękuję!