Skip to content

Replaces Rails PostgreSQL `dbconsole` with the much nicer `pgcli`

License

Notifications You must be signed in to change notification settings

mattbrictson/pgcli-rails

Repository files navigation

pgcli-rails

Gem Version Gem Downloads GitHub Workflow Status

pgcli is a command-line interface for PostgreSQL that offers many improvements over psql, like auto-completion and syntax highlighting. Wouldn't it be nice to have a convenient way to use pgcli with your Rails app?

That's where the pgcli-rails gem comes in. It adds a pgcli Rake task to your Rails app. Use it in place of rails dbconsole.

Usage

Add the gem to your Gemfile and run bundle install:

gem "pgcli-rails"

Running the pgcli Rake task automatically uses your database.yml to launch pgcli with the correct connection options:

$ bin/rake pgcli
Version: 1.0.0
Chat: https://gitter.im/dbcli/pgcli
Mail: https://groups.google.com/forum/#!forum/pgcli
Home: http://pgcli.com
my_app_development>



 [F2] Smart Completion: ON  [F3] Multiline: OFF  [F4] Emacs-mode

Other ways to use it:

# Rails 5 also supports running Rake tasks via the rails command
bin/rails pgcli

# Connect to the test database
RAILS_ENV=test bin/rake pgcli

Requirements

  • Rails 4.2+ using PostgreSQL
  • Ruby 3.1+
  • pgcli (brew install pgcli to install on macOS)

How it works

pgcli-rails is simply a Rake task that reuses the existing Rails::DBConsole command class provided by Rails. It applies a monkey patch so that pgcli is executed instead of psql. All you need to do is require the pgcli-rails gem by placing it in your Gemfile.

Configuration

There is no configuration. Like rails dbconsole, it simply uses your ActiveRecord database connection as specified in database.yml.

Roadmap

pgcli-rails is little more than a proof-of-concept at this point. Next steps are:

  • Add tests
  • Use Appraisal to test against multiple versions of Rails

If you have other ideas, open an issue on GitHub!

Contributing

Code contributions are also welcome! Read CONTRIBUTING.md to get started.

License

The gem is available as open source under the terms of the MIT License.