img src="https://api.gitsponsors.com/api/badge/img?id=78002099" height="20"
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 / ActiveRecord 7.1+ (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:
bundleIf 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 refresh the generated appraisal gemfiles:
bundle exec appraisal generateTo run the maintained dependency matrix locally:
bundle exec appraisal install
bundle exec appraisal rakeGitHub Actions runs the Rails / ActiveRecord 7.1, 7.2, 8.0, and 8.1
matrix on Ruby 3.2, 3.3, and 3.4.
The gem is available as open source under the terms of the MIT License.

