目前,我正在寻找在运行mix
任务时添加SQL语句日志记录的方法。例如,mix ecto.rollback
和mix ecto.migrate
等命令会输出信息:
...
13:45:53.016 [info] == Running Repo.Migrations.AddAmountToUserResources.change/0 backward
13:45:53.016 [info] alter table user_resources
...
然而,我希望看到由alter table user_resources
生成的确切的SQL语句,而不是神秘的ecto
。
有没有办法做到这一点?
我查了几个SO答案,看起来很相似(例如Disable Elixir Ecto Debug output)。不幸的是,他们在我的案例中并没有帮助我。 提前谢谢。
答案 0 :(得分:3)
允许记录原始SQL的功能已添加到Ecto on 15 Jan 2017。从那以后,还没有发布过Ecto。一旦有,或者您切换到使用Github主分支的Ecto版本,您可以将--log-sql
传递给命令ecto.migrate
和ecto.rollback
,以使其记录已执行的完整查询。
$ mix ecto.migrate --log-sql
$ mix ecto.rollback --log-sql