1
0
Fork 0
pgcli/README.rst

243 lines
5.8 KiB
ReStructuredText
Raw Normal View History

2017-06-12 02:20:24 +00:00
A REPL for Postgres
2014-10-12 22:19:34 +00:00
-------------------
2017-07-21 07:04:25 +00:00
|Build Status| |CodeCov| |PyPI| |Gitter|
2015-01-05 07:34:31 +00:00
2014-10-12 22:19:34 +00:00
This is a postgres client that does auto-completion and syntax highlighting.
2014-10-12 22:17:39 +00:00
2015-07-24 15:51:22 +00:00
Home Page: http://pgcli.com
2016-04-07 00:23:53 +00:00
MySQL Equivalent: http://mycli.net
2015-04-11 16:26:09 +00:00
2015-07-23 23:19:14 +00:00
.. image:: screenshots/pgcli.gif
2014-12-01 06:02:04 +00:00
.. image:: screenshots/image01.png
2014-10-12 22:17:39 +00:00
2014-12-01 06:27:18 +00:00
Quick Start
-----------
2015-01-07 01:15:45 +00:00
If you already know how to install python packages, then you can simply do:
2014-12-01 06:27:18 +00:00
::
2017-02-18 17:25:13 +00:00
$ pip install -U pgcli
2014-10-12 22:17:39 +00:00
or
$ brew install pgcli # Only on macOS
2017-06-12 02:20:24 +00:00
If you don't know how to install python packages, please check the
2014-12-19 06:32:47 +00:00
`detailed instructions`__.
2014-12-01 06:02:04 +00:00
2017-06-12 02:20:24 +00:00
__ https://github.com/dbcli/pgcli#detailed-installation-instructions
2014-12-01 06:02:04 +00:00
2014-12-01 06:27:18 +00:00
Usage
-----
2014-12-01 06:02:04 +00:00
2017-06-12 02:20:24 +00:00
::
2014-10-12 22:17:39 +00:00
2014-12-01 06:27:18 +00:00
$ pgcli [database_name]
or
2017-06-12 02:20:24 +00:00
$ pgcli postgresql://[user[:password]@][netloc][:port][/dbname]
2014-12-01 06:27:18 +00:00
2017-06-12 02:20:24 +00:00
Examples:
2014-12-01 06:27:18 +00:00
2017-06-12 02:20:24 +00:00
::
2014-12-01 06:27:18 +00:00
$ pgcli local_database
$ pgcli postgres://amjith:pa$$w0rd@example.com:5432/app_db
Features
--------
The `pgcli` is written using prompt_toolkit_.
* Auto-completes as you type for SQL keywords as well as tables and
2014-12-01 06:27:18 +00:00
columns in the database.
* Syntax highlighting using Pygments.
2014-12-19 06:32:47 +00:00
* Smart-completion (enabled by default) will suggest context-sensitive
completion.
2014-12-01 06:27:18 +00:00
2017-06-12 02:20:24 +00:00
- ``SELECT * FROM <tab>`` will only show table names.
- ``SELECT * FROM users WHERE <tab>`` will only show column names.
2014-12-01 06:02:04 +00:00
2017-06-12 02:20:24 +00:00
* Primitive support for ``psql`` back-slash commands.
* Pretty prints tabular data.
2017-07-01 18:04:44 +00:00
Note: `pgcli` uses the `tabulate`_ package to pretty-print tables. This library does smart formatting
of numbers, which can sometimes lead to unexpected output. See `this issue`_ for more details.
2014-12-01 06:27:18 +00:00
.. _prompt_toolkit: https://github.com/jonathanslenders/python-prompt-toolkit
2017-07-01 18:04:44 +00:00
.. _tabulate: https://github.com/dbcli/pgcli/blob/master/pgcli/packages/tabulate.py
.. _this issue: https://github.com/dbcli/pgcli/issues/617
2014-12-01 06:02:04 +00:00
Config
------
A config file is automatically created at ``~/.config/pgcli/config`` at first launch.
See the file itself for a description of all available options.
2014-12-19 08:32:26 +00:00
Contributions:
--------------
If you're interested in contributing to this project, first of all I would like
to extend my heartfelt gratitude. I've written a small doc to describe how to
get this running in a development setup.
2015-04-19 05:54:58 +00:00
https://github.com/dbcli/pgcli/blob/master/DEVELOP.rst
2014-12-19 08:32:26 +00:00
2017-06-12 02:20:24 +00:00
Please feel free to reach out to me if you need help.
2014-12-19 08:32:26 +00:00
My email: amjith.r@gmail.com, Twitter: `@amjithr <http://twitter.com/amjithr>`_
2014-12-01 06:02:04 +00:00
Detailed Installation Instructions:
2014-12-01 06:27:18 +00:00
-----------------------------------
2014-12-01 06:02:04 +00:00
2017-06-02 19:05:48 +00:00
macOS:
======
2014-12-01 06:02:04 +00:00
The easiest way to install pgcli is using Homebrew.
::
$ brew install pgcli
Done!
Alternatively, you can install ``pgcli`` as a python package using a package
manager called called ``pip``. You will need postgres installed on your system
2017-06-12 02:20:24 +00:00
for this to work.
2015-01-27 14:07:41 +00:00
In depth getting started guide for ``pip`` - https://pip.pypa.io/en/latest/installing.html.
2014-12-01 06:02:04 +00:00
2017-06-12 02:20:24 +00:00
::
2014-12-01 06:02:04 +00:00
$ which pip
If it is installed then you can do:
2017-06-12 02:20:24 +00:00
::
2014-12-01 06:02:04 +00:00
$ pip install pgcli
If that fails due to permission issues, you might need to run the command with
2017-06-12 02:20:24 +00:00
sudo permissions.
2014-12-01 06:02:04 +00:00
::
$ sudo pip install pgcli
If pip is not installed check if easy_install is available on the system.
2017-06-12 02:20:24 +00:00
::
2014-12-01 06:02:04 +00:00
$ which easy_install
2015-01-07 10:09:30 +00:00
$ sudo easy_install pgcli
2014-12-01 06:02:04 +00:00
Linux:
2014-12-01 06:27:18 +00:00
======
2014-12-01 06:02:04 +00:00
2015-01-27 14:07:41 +00:00
In depth getting started guide for ``pip`` - https://pip.pypa.io/en/latest/installing.html.
Check if pip is already available in your system.
2014-12-01 06:02:04 +00:00
2017-06-12 02:20:24 +00:00
::
$ which pip
2014-12-19 06:32:47 +00:00
If it doesn't exist, use your linux package manager to install `pip`. This
2017-06-12 02:20:24 +00:00
might look something like:
::
$ sudo apt-get install python-pip # Debian, Ubuntu, Mint etc
or
$ sudo yum install python-pip # RHEL, Centos, Fedora etc
``pgcli`` requires python-dev, libpq-dev and libevent-dev packages. You can
2017-06-12 02:20:24 +00:00
install these via your operating system package manager.
::
$ sudo apt-get install python-dev libpq-dev libevent-dev
2017-06-12 02:20:24 +00:00
or
$ sudo yum install python-devel postgresql-devel
2017-06-12 02:20:24 +00:00
Then you can install pgcli:
2017-06-12 02:20:24 +00:00
::
$ sudo pip install pgcli
2014-12-01 06:02:04 +00:00
2017-03-02 22:30:40 +00:00
Docker
======
Pgcli can be run from within Docker. This can be useful to try pgcli without
installing it, or any dependencies, system-wide.
To build the image:
::
2017-04-25 08:44:58 +00:00
2017-03-02 22:30:40 +00:00
$ docker build -t pgcli .
To create a container from the image:
::
2017-04-25 08:44:58 +00:00
2017-03-02 22:30:40 +00:00
$ docker run --rm -ti pgcli pgcli <ARGS>
To access postgresql databases listening on localhost, make sure to run the
docker in "host net mode". E.g. to access a database called "foo" on the
postgresql server running on localhost:5432 (the standard port):
::
2017-04-25 08:44:58 +00:00
2017-03-02 22:30:40 +00:00
$ docker run --rm -ti --net host pgcli pgcli -h localhost foo
To connect to a locally running instance over a unix socket, bind the socket to
the docker container:
::
2017-04-25 08:44:58 +00:00
2017-03-02 22:30:40 +00:00
$ docker run --rm -ti -v /var/run/postgres:/var/run/postgres pgcli pgcli foo
2014-12-11 08:51:38 +00:00
Thanks:
2014-12-19 08:32:26 +00:00
-------
2014-12-11 18:10:26 +00:00
A special thanks to `Jonathan Slenders <https://twitter.com/jonathan_s>`_ for
2017-06-12 02:20:24 +00:00
creating `Python Prompt Toolkit <http://github.com/jonathanslenders/python-prompt-toolkit>`_,
2014-12-19 06:32:47 +00:00
which is quite literally the backbone library, that made this app possible.
Jonathan has also provided valuable feedback and support during the development
of this app.
`Click <http://click.pocoo.org/>`_ is used for command line option parsing
2014-12-19 06:32:47 +00:00
and printing error messages.
2014-12-19 06:32:47 +00:00
Thanks to `psycopg <http://initd.org/psycopg/>`_ for providing a rock solid
2015-01-07 22:20:53 +00:00
interface to Postgres database.
2014-12-19 06:32:47 +00:00
Thanks to all the beta testers and contributors for your time and patience. :)
2015-01-05 07:34:31 +00:00
2015-04-19 05:54:58 +00:00
.. |Build Status| image:: https://api.travis-ci.org/dbcli/pgcli.svg?branch=master
:target: https://travis-ci.org/dbcli/pgcli
2015-01-05 07:34:31 +00:00
2017-07-21 07:04:25 +00:00
.. |CodeCov| image:: https://codecov.io/gh/dbcli/pgcli/branch/master/graph/badge.svg
:target: https://codecov.io/gh/dbcli/pgcli
:alt: Code coverage report
2015-10-11 16:58:05 +00:00
.. |PyPI| image:: https://img.shields.io/pypi/v/pgcli.svg
2015-01-05 07:34:31 +00:00
:target: https://pypi.python.org/pypi/pgcli/
:alt: Latest Version
2015-01-30 06:49:23 +00:00
.. |Gitter| image:: https://badges.gitter.im/Join%20Chat.svg
2015-04-19 05:54:58 +00:00
:target: https://gitter.im/dbcli/pgcli?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
2015-01-30 06:49:23 +00:00
:alt: Gitter Chat