LoginSignup
7
6

More than 5 years have passed since last update.

PostgreSQLクライアント pgcli のインストール(Windows対応)※改修待ち

Last updated at Posted at 2015-06-25

利用上の注意があります!
こちらを確認した上でインストールお願いします。

はじめに

pgcliについてやMac/Linuxへのインストール方法は下記の参考サイトを参照下さい。

pgcli の Windows7 環境へのインストール情報は本家サイトを見ても見当たらず、手こずる要素があったたので共有します。
(どうやら、開発者がWindows機を持っていないため(!)、Windowsのインストール手順をメンテナンス出来ないようです…)

きっかけ

PostgreSQLのGUIクライアントツールはpgAdminPSqlEditという有名なツールがあるようですが、CLIツールの方は良さそうなのが見当たらなかったので、pgcliを選択しました。

pgAdmin: PostgreSQL administration and management tools
http://www.pgadmin.org/

PSqlEdit - PostgreSQL用SQLエディタ&実行環境
http://www.hi-ho.ne.jp/a_ogawa/psqledit/

Windows環境へのインストール手順は前述の通り本家サイトに記載がなかったのですが、pgcliはPythonの標準モジュールで作成されているためおそらく動くとのこと。
というわけでチャレンジしてみました。

手順

以下のissueを参考に。

how to use pgcli on win7
https://github.com/dbcli/pgcli/issues/108

Python3.4.2をインストール

以下からCドライブ直下にPython3.4.2をダウンロード&インストールします。
https://www.python.org/downloads/release/python-342/

インストール後、pythonのパスを通しておきます。

環境変数
変数名:PYTHON_HOME
変数値:C:\Python34

変数名:Path
変数値:~;%PYTHON_HOME%

パスが通っていることの確認します。

Pythonインストール確認
C:\>python -V
Python 3.4.3

get-pip.pyをダウンロード

以下の.pyファイルをCドライブ直下に配備します。
https://bootstrap.pypa.io/get-pip.py

先ほどDLしてきたget-pip.pyを実行します。

get-pipの実行
# 実行
C:\>python C:\get-pip.py

# 実行ログ
Downloading pip-7.0.3-py2.py3-none-any.whl (1.1MB)
    100% |################################| 1.1MB 332kB/s
Collecting wheel
  Downloading wheel-0.24.0-py2.py3-none-any.whl (63kB)
    100% |################################| 65kB 630kB/s
Installing collected packages: pip, wheel
  Found existing installation: pip 6.0.8
    Uninstalling pip-6.0.8:
      Successfully uninstalled pip-6.0.8
Successfully installed pip-7.0.3 wheel-0.24.0

win-psycopg

そのままpipだとWindows7環境ではエラーになったので、win-psycopgをインストールします。
このwin-psycopgとはPythonのpostgresqlインターフェースのことらしいです。

下記のサイトからpsycopg2-2.6.1.win32-py3.4-pg9.4.4-release.exeをダウンロード&インストールします。

win-psycopg is a Windows port of the psycopg python-postgresql database interface
http://www.stickpeople.com/projects/python/win-psycopg/

pipでpgcliをインストール

準備完了です。pip経由でpgcliをインストールします。
バージョンは現時点で最新の0.17.0です。

pgcliのインストール
# インストール実行
C:\Python34\Scripts\pip install pgcli

# 実行ログ
ollecting pgcli
 Using cached pgcli-0.17.0.tar.gz
ollecting click>=3.2 (from pgcli)
 Using cached click-4.0-py2.py3-none-any.whl
ollecting Pygments>=2.0 (from pgcli)
 Using cached Pygments-2.0.2-py3-none-any.whl
ollecting prompt-toolkit==0.37 (from pgcli)
 Using cached prompt_toolkit-0.37-py3-none-any.whl
equirement already satisfied (use --upgrade to upgrade): psycopg2>=2.5.4 in c:\python34\lib\site-packages (from pgcli)
ollecting sqlparse==0.1.14 (from pgcli)
 Downloading sqlparse-0.1.14.tar.gz (55kB)
   100% |################################| 57kB 282kB/s
ollecting wcwidth (from prompt-toolkit==0.37->pgcli)
 Downloading wcwidth-0.1.4-py2.py3-none-any.whl
ollecting six>=1.8.0 (from prompt-toolkit==0.37->pgcli)
 Downloading six-1.9.0-py2.py3-none-any.whl
uilding wheels for collected packages: pgcli, sqlparse
 Running setup.py bdist_wheel for pgcli
 Stored in directory: C:\Users\mano\AppData\Local\pip\Cache\wheels\d1\14\ca\e5e274158967905fd83a60b7f351551869cede6c2710829de9
 Running setup.py bdist_wheel for sqlparse
 Stored in directory: C:\Users\mano\AppData\Local\pip\Cache\wheels\6c\36\6c\857636f3565e75277d8ca9e8456ca1e2ce6dfa8387a69d9a0c
uccessfully built pgcli sqlparse
nstalling collected packages: click, Pygments, wcwidth, six, prompt-toolkit, sqlparse, pgcli
uccessfully installed Pygments-2.0.2 click-4.0 pgcli-0.17.0 prompt-toolkit-0.37 six-1.9.0 sqlparse-0.1.14 wcwidth-0.1.4

pgcliの実行

立ち上げ
# -h ホスト名
# -p ポート番号
# -U ユーザ名 データベース名
C:\>Python34\Scripts\pgcli -h 127.0.0.1 -p 5432 -U xxx xxx

# 実行ログ
Version: 0.17.0
Chat: https://gitter.im/dbcli/pgcli
Mail: https://groups.google.com/forum/#!forum/pgcli
Home: http://pgcli.com
gis>

感触

本当にちゃんとWindowsでも動くか心配しましたが、Windowsでも補完やサジェストが上手く動きます!!
タブ選択も問題ないです。
そして予想以上サクサク動いてくれるためストレス無く仕事に集中できます!

■Select句補完
select補完.png

■FROM句補完(テーブルサジェスト)
aaaa.png

■where句のカラム名補完
where句補完.png

使い勝手向上策

pgcliコマンドを一々叩くのも面倒なのでバッチファイル化すると幸せになれます。
環境情報を覚えておく必要もなくなります。

pgcli_run.bat
rem pgcliを起動
call C:\Python34\Scripts\pgcli -h 127.0.0.1 -p 5432 -U ${username} ${dbname}

pause
exit

(2015/06/25 22:30 追記)制約

以下のIssuesが上がってました‥。
Windowsでも全角入力でクラッシュする危険性があります。

non-ascii character make pgcli crash #171
https://github.com/dbcli/pgcli/issues/171

以下のコマンドで最新版のpgcliを取得するとクラッシュ自体は防ぐことが出来るようになりました。
ただし、未だに全角入力が出来ません。
上記のIssuesの対応待ちです。

C:\Python34\Scripts\pip install -U -e git+ssh://git@github.com/dbcli/pgcli.git#egg=pgcli

ちなみに原因はpgcli本体の不具合ではなくpgcliが利用しているprompt-toolsというモジュールが起因らしいです。
そのprmpt-toolsがWindows対応が弱いらしく、回避するにはcmderを使うと良いよと本家サイトに記載してましたが、pgclicmderだと起動すらしませんでした・・・。
解決までWatchを続けたいと思います。

まとめ

Windows環境でもMac/Linux環境の評判通りハイライトも綺麗に表示してくれますし補完も強力です!
皆さんもぜひWindows環境にインストールしてみてください!

7
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6