Как использовать raw sql с экто репо

У меня есть требование upsert, поэтому мне нужно вызвать хранимую процедуру postgres или использовать общее табличное выражение. Я также использую расширение pgcrypto для паролей и хотел бы использовать функции postgres (например, «crypt» для кодирования / декодирования паролей).

Но я не могу найти способ заставить Ecto играть с сырым sql частично или полностью. Предполагается ли, что ecto будет поддерживать только elixir dsl и не разрешать переход на raw sql, когда dsl недостаточно?

Я обнаружил, что могу отправлять запросы через адаптер (Rocket - название приложения)

q = Ecto.Adapters.Postgres.query(Rocket.Repo,"select * from users limit 1",[])

Но не уверен, как получить это к модели. Я новичок в эликсире, и, кажется, я должен быть в состоянии использовать Ecto.Model.Schem.схема/ 3 но это не удается

Rocket.User.__schema__(:load,q.rows |> List.first,0)
** (FunctionClauseError) no function clause matching in Rocket.User.__schema__/3    

Ответы на вопрос(8)

Ваш ответ на вопрос