GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

dbcli

pgcli – 自動補完と構文強調表示を備えたPostgres CLI

投稿日:

自動補完と構文強調表示を備えたPostgres CLI http://pgcli.com

Postgres用のREPL

これは、自動補完と構文強調表示を行うポストグルクライアントです。

ホームページ: http : //pgcli.com

MySQL同等物: http : //mycli.net

クイックスタート

既にPythonパッケージをインストールする方法が分かっているならば、次のようにすることができます:

$ pip install -U pgcli

or

$ sudo apt-get install pgcli # Only on Debian based Linux (e.g. Ubuntu, Mint, etc)
$ brew install pgcli  # Only on macOS

Pythonパッケージのインストール方法がわからない場合は、 詳しい手順を確認してください

使用法

$ pgcli [database_name]

or

$ pgcli postgresql://[user[:password]@][netloc][:port][/dbname]

例:

$ pgcli local_database

$ pgcli postgres://amjith:pa$$w0rd@example.com:5432/app_db

特徴

pgcliはprompt_toolkitを使って書かれています

  • データベース内のテーブルやカラムだけでなく、SQLキーワードの入力時にも自動的に完了します。

  • Pygmentsを使ったシンタックスハイライト

  • Smart-completion(デフォルトで有効)は、状況依存の完了を示唆します。

    • SELECT * FROM <tab>はテーブル名のみを表示します。
    • SELECT * FROM users WHERE <tab>は列名のみを表示します。
  • psqlバックスラッシュコマンドのプリミティブサポート。

  • 表形式のデータがきれいに印刷されます。 注意:pgcliはtabulateパッケージを使用してテーブルをきれいに印刷します。 このライブラリは数値のスマートな書式設定を行い、予期しない出力につながることがあります。 詳細については、 この問題を参照してください。

設定

configファイルは、最初の起動時に~/.config/pgcli/config自動的に作成されます。 使用可能なすべてのオプションの説明については、ファイル自体を参照してください。

貢献:

このプロジェクトへの貢献に興味があるなら、まずは心から感謝します。 私は開発のセットアップでこれを実行する方法を説明するための小さな文書を書いています。

https://github.com/dbcli/pgcli/blob/master/DEVELOP.rst

助けが必要な場合は、私に手を差し伸べてください。 私のメールアドレス: amjith.r@gmail.com 、Twitter: @amjithr

詳細なインストール手順:

マックOS:

pgcliをインストールする最も簡単な方法は、Homebrewを使用することです。

$ brew install pgcli

完了!

あるいは、called pipというパッケージマネージャを使って、 pgcliをpythonパッケージとしてインストールすることもできます。 これが機能するには、システムにpostgresがインストールされている必要があります。

徹底的にpiphttps://pip.pypa.io/en/latest/installing.htmlのガイドを開始してください

$ which pip

インストールされている場合は、次の操作を実行できます。

$ pip install pgcli

アクセス権の問題が原因で失敗した場合は、sudo権限でコマンドを実行する必要があります。

$ sudo pip install pgcli

pipがインストールされていない場合は、システムでeasy_installが利用可能かどうかを確認してください。

$ which easy_install

$ sudo easy_install pgcli

Linux:

徹底的にpiphttps://pip.pypa.io/en/latest/installing.htmlのガイドを開始してください

あなたのシステムでpipがすでに利用可能であるかどうかを確認してください。

$ which pip

存在しない場合は、Linuxパッケージマネージャを使用してpipをインストールしてください。 これは次のようになります。

$ sudo apt-get install python-pip   # Debian, Ubuntu, Mint etc

or

$ sudo yum install python-pip  # RHEL, Centos, Fedora etc

pgcliは、python-dev、libpq-dev、libevent-devパッケージが必要です。 これらは、オペレーティングシステムのパッケージマネージャを使用してインストールできます。

$ sudo apt-get install python-dev libpq-dev libevent-dev

or

$ sudo yum install python-devel postgresql-devel

次に、pgcliをインストールすることができます:

$ sudo pip install pgcli

ドッカー

PgcliはDocker内から実行できます。 これは、pgcliをインストールせずに、またはシステム全体の依存関係を試みるのに便利です。

イメージを構築するには:

$ docker build -t pgcli .

イメージからコンテナを作成するには:

$ docker run --rm -ti pgcli pgcli <ARGS>

localhostでリッスンしているpostgresqlデータベースにアクセスするには、ドッカーを “host net mode”で実行してください。 たとえば、localhost:5432(標準ポート)上で実行されているpostgresqlサーバー上の “foo”というデータベースにアクセスします。

$ docker run --rm -ti --net host pgcli pgcli -h localhost foo

Unixソケットを介してローカルに実行中のインスタンスに接続するには、ソケットをドッカーコンテナにバインドします。

$ docker run --rm -ti -v /var/run/postgres:/var/run/postgres pgcli pgcli foo

IPython

Pgcliは、 IPythonコンソールから実行できます。 クエリを処理する場合、IPythonコンソールを離れずにクエリを繰り返してから、pgcliセッションを終了し、pgcliを終了してIPythonワークスペースでクエリ結果を見つけると便利です。

IPythonがインストールされていると仮定します:

$ pip install ipython-sql

その後、ipythonを実行し、 pgcli.magic拡張をロードします:

$ ipython

In [1]: %load_ext pgcli.magic

データベースに接続してクエリを構築する:

In [2]: %pgcli postgres://someone@localhost:5432/world
Connected: someone@world
someone@localhost:world> select * from city c where countrycode = 'USA' and population > 1000000;
+------+--------------+---------------+--------------+--------------+
| id   | name         | countrycode   | district     | population   |
|------+--------------+---------------+--------------+--------------|
| 3793 | New York     | USA           | New York     | 8008278      |
| 3794 | Los Angeles  | USA           | California   | 3694820      |
| 3795 | Chicago      | USA           | Illinois     | 2896016      |
| 3796 | Houston      | USA           | Texas        | 1953631      |
| 3797 | Philadelphia | USA           | Pennsylvania | 1517550      |
| 3798 | Phoenix      | USA           | Arizona      | 1321045      |
| 3799 | San Diego    | USA           | California   | 1223400      |
| 3800 | Dallas       | USA           | Texas        | 1188580      |
| 3801 | San Antonio  | USA           | Texas        | 1144646      |
+------+--------------+---------------+--------------+--------------+
SELECT 9
Time: 0.003s

Ctrl + Dキーでpgcliセッションを終了し、検索結果を見つけます:

someone@localhost:world>
Goodbye!
9 rows affected.
Out[2]:
[(3793, u'New York', u'USA', u'New York', 8008278),
 (3794, u'Los Angeles', u'USA', u'California', 3694820),
 (3795, u'Chicago', u'USA', u'Illinois', 2896016),
 (3796, u'Houston', u'USA', u'Texas', 1953631),
 (3797, u'Philadelphia', u'USA', u'Pennsylvania', 1517550),
 (3798, u'Phoenix', u'USA', u'Arizona', 1321045),
 (3799, u'San Diego', u'USA', u'California', 1223400),
 (3800, u'Dallas', u'USA', u'Texas', 1188580),
 (3801, u'San Antonio', u'USA', u'Texas', 1144646)]

結果は特別なローカル変数_で利用可能であり、あなたが選んだ変数に割り当てることができます:

In [3]: my_result = _

ありがとう:

このアプリを可能にした、文字通りバックボーンライブラリであるPython Prompt Toolkitを作成したJonathan Slendersに特別な感謝をします。 ジョナサンはまた、このアプリの開発中に貴重なフィードバックとサポートを提供しています。

Clickは、コマンドラインオプションの解析とエラーメッセージの印刷に使用されます。

Postgresデータベースとの強固なインターフェースを提供するpsycopgに感謝します。

すべてのベータテスターとあなたの時間と忍耐の貢献者に感謝します。 🙂







-dbcli
-, , , ,

執筆者: