Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mattbrictson/pgcli-rails

Replaces Rails PostgreSQL `dbconsole` with the much nicer `pgcli`
https://github.com/mattbrictson/pgcli-rails

Last synced: about 1 month ago
JSON representation

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

Awesome Lists containing this project

README

        

# pgcli-rails

[![Gem Version](https://img.shields.io/gem/v/pgcli-rails)](https://rubygems.org/gems/pgcli-rails)
[![Gem Downloads](https://img.shields.io/gem/dt/pgcli-rails)](https://www.ruby-toolbox.com/projects/pgcli-rails)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/mattbrictson/pgcli-rails/ci.yml)](https://github.com/mattbrictson/pgcli-rails/actions/workflows/ci.yml)

[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`:

```ruby
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](CONTRIBUTING.md) to get started.

## License

The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).

[pgcli]: https://www.pgcli.com/
[Appraisal]: https://github.com/thoughtbot/appraisal