Ectoを使った実装をしている際、生成されるSQL文を確認したいときに使っています。
Ecto.Adapters.SQL.to_sql/3
を使う書き方もありますが、
iex> import Ecto.Query
iex> alias NaiveTree.Repo
iex> alias Categories.Category
iex> query = from c in Category
iex> Ecto.Adapters.SQL.to_sql(:all, Repo, query)
{"SELECT c0.\"id\", c0.\"name\", c0.\"parent_id\", c0.\"inserted_at\", c0.\"updated_at\" FROM \"categories\" AS c0",
[]}
to_sql
はRepo配下でも実行できます。こっちのほうが楽かも。
iex> Repo.to_sql(:all, query)
{"SELECT c0.\"id\", c0.\"name\", c0.\"parent_id\", c0.\"inserted_at\", c0.\"updated_at\" FROM \"categories\" AS c0",
[]}