Search code examples
sqlperlformattingdbix-class

Can I pretty-print the DBIC_TRACE output in DBIx::Class?


Setting the DBIC_TRACE environment variable to true:

BEGIN { $ENV{DBIC_TRACE} = 1 }

generates very helpful output, especially showing the SQL query that is being executed, but the SQL query is all on one line.

Is there a way to push it through some kinda "sql tidy" routine to format it better, perhaps breaking it up over multiple lines? Failing that, could anyone give me a nudge into where in the code I'd need to hack to add such a hook? And what the best tool is to accept a badly formatted SQL query and push out a nicely formatted one?

"nice formatting" in this context simply means better than "all on one line". I'm not particularly fussed about specific styles of formatting queries

Thanks!


Solution

  • As of DBIx::Class 0.08124 it's built in.

    Just set $ENV{DBIC_TRACE_PROFILE} to console or console_monochrome.