Как отладить ошибочный Ecto-запрос?
После окончательной настройки конфигурации репо Cross DB Ecto при попытке выполнить запрос я получаю следующее:
iex(1)> import Ecto.Query
Ecto.Query
iex(2)> Drupex.DrupalRepo.query(from "watchdog", select: [:wid]);
** (Protocol.UndefinedError) protocol String.Chars not implemented for #Ecto.Query<from w in "watchdog", select: [:wid]>. This protocol is implemented for: Atom, BitString, Date, DateTime, Decimal, Ecto.Date, Ecto.DateTime, Ecto.Time, Float, Integer, List, Mariaex.Query, NaiveDateTime, Postgrex.Copy, Postgrex.Query, Postgrex.Stream, Time, URI, Version, Version.Requirement
(elixir) lib/string/chars.ex:3: String.Chars.impl_for!/1
(elixir) lib/string/chars.ex:22: String.Chars.to_string/1
(ecto) lib/ecto/adapters/sql.ex:613: Ecto.Adapters.SQL.log/4
(db_connection) lib/db_connection.ex:1186: DBConnection.log/6
(db_connection) lib/db_connection.ex:643: DBConnection.execute/4
(ecto) lib/ecto/adapters/sql.ex:256: Ecto.Adapters.SQL.sql_call/6
Я попытался в Google узнать, как обработчик ошибок отображать аргументы, но ничего не нашел, поэтому я не знаю, что это за ошибка - мой запрос неверен, есть ли у него проблемы с подключением к серверу MySQL и т. Д.
Редактировать: я понял, это Drupex.DrupalRepo.all
, Я понял это, добавив IO.inspect
призывает в lib/ecto/adapters/sql.ex
но это очень грязный взлом, конечно, есть лучшие способы.