调试级别记录`mix ecto.rollback`和`mix ecto.migrate`命令

时间:2017-05-02 09:54:28

标签: elixir phoenix-framework ecto mix

目前,我正在寻找在运行mix任务时添加SQL语句日志记录的方法。例如,mix ecto.rollbackmix 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)。不幸的是,他们在我的案例中并没有帮助我。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

允许记录原始SQL的功能已添加到Ecto on 15 Jan 2017。从那以后,还没有发布过Ecto。一旦有,或者您切换到使用Github主分支的Ecto版本,您可以将--log-sql传递给命令ecto.migrateecto.rollback,以使其记录已执行的完整查询。

$ mix ecto.migrate --log-sql
$ mix ecto.rollback --log-sql