Replace standard ActiveRecord#to_sql
method with
anbt-sql-formatter
gem for pretty SQL code output in console. Rails log will be formatted also.
Example output:
Or in console
Ruby 3.1+
Rails 7.0+ (optional), will be injected automatically
You can use version ~> 0.2
of this gem with Ruby 2.2, 2.3 and/or Rails 4.0, 4.1
Post.first.to_sql
for easy and clean usage with custom string you can use:
class MyAwesomeDecoratedString < String
include PpSql::ToSqlBeautify
end
add in Gemfile
gem 'pp_sql', group: :development
And then execute:
bundle
If you are pry
user, or use custom output formatter, use puts
for output whitespaces,
like puts User.all.to_sql
, or use User.all.pp_sql
.
If you do not want to rewrite default #to_sql
method you may specify
PpSql.rewrite_to_sql_method=false
in initializers.
You can also disable log formatting by specifying PpSql.add_rails_logger_formatting=false
in initializers.
I found usefull this trick:
class ApplicationRecord < ActiveRecord::Base
include PpSql::ToSqlBeautify if defined?(Rails::Console)
self.abstract_class = true
end
Running the tests requires sqlite. To run the tests for different combinations of dependency
versions, run bundle exec appraisal install
followed by bundle exec appraisal rake
.
The gem is available as open source under the terms of the MIT License.