9.3k Star!PostgreSQL 的增强版命令行客户端

284 阅读2分钟

【导语】:pgcli 是针对PostgreSQL的命令行工具,对SQL语句有语法高亮显示,并且能对输入进行自动提示。

简介

pgcli是PostgreSQL的客户端工具,支持语法高亮,支持自动提示补全命令,顺嘴一提,MySQL也有类似的工具叫mycli。

项目地址:
github.com/dbcli/pgcli

简单使用

下载安装

pgcli本质上是一个python库,所以它的安装方式和其他python库安装一样:

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

使用

连接数据库的语法为:

$ pgcli [database_name]
或者
$ pgcli postgresql://[user[:password]@][netloc][:port][/dbname][?extra=value[&other=other-value]]

例如:

$ pgcli local_database
$ pgcli postgres://amjith:pa$$w0rd@example.com:5432/app_db?sslmode=verify-ca&sslrootcert=/myrootcert

更详细的用法,使用--help选项查看:

$ pgcli --help

Usage: pgcli [OPTIONS] [DBNAME] [USERNAME]

Options:
  -h, --host TEXT         PostgreSQL数据库所在主机地址.
  -p, --port INTEGER      PostgreSQL数据库实例的端口.
  -U, --username TEXT     PostgreSQL数据库用户名.
  -u, --user TEXT         PostgreSQL数据库用户名.
  -W, --password          强制提示输入密码.
  -w, --no-password       不提示输入密码.
  --single-connection     只是用单一的连接.
  -v, --version           查看pgcli版本.
  -d, --dbname TEXT       目标连接的数据库.
  --pgclirc PATH          pgclirc文件的路径.
  -D, --dsn TEXT          使用配置到[alias_dsn]部分的DSN pgclirc文件.
  --list-dsn              配置到[alias_dsn]部分的DSN列表pgclirc文件.
  --row-limit INTEGER     设置行限制提示的阈值。使用0禁用提示.
  --less-chatty           跳过启动时的介绍和退出时的再见.
  --prompt TEXT           提示格式(默认: "\u@\h:\d> ").
  --prompt-dsn TEXT       使用DSN别名的连接的提示格式(默认: "\u@\h:\d> ").
  -l, --list              列出可用的数据库,然后退出.
  --auto-vertical-output  如果输入内容比终端宽度宽,自动切换到垂直输出模式.
  --warn / --no-warn      在运行危险查询之前发出警告.

pgcli可以读取psql的环境变量,如PGHOST, PGPORT, PGUSER, PGPASSWORD, PGDATABASE;也使用ssl连接来连接ProstgreSQL,设置ssl相关的内容如下:

export PGSSLMODE="verify-full"
export PGSSLCERT="/your-path-to-certs/client.crt"
export PGSSLKEY="/your-path-to-keys/client.key"
export PGSSLROOTCERT="/your-path-to-ca/ca.crt"
pgcli -h localhost -p 5432 -U username postgres

其他功能介绍

  • 输入SQL关键字或数据库表、列时自动提示、补全
  • 使用Pygments突出显示语法
  • 根据上下文智能猜测目的,如
    • SELECT * FROM <tab> 将仅显示表名称。
    • SELECT * FROM users WHERE <tab> 将仅显示列名称。
  • 对psql反斜杠命令的原始支持
  • 优雅可视化的表格内容展示
  • 首次启动时会自动创建一个配置文件,~/.config/pgcli/config
    • 该文件用于对pgcli使用的一些配置,如是否启用自动补全功能,pgcli日志文件路径等。

开源前哨 日常分享热门、有趣和实用的开源项目。参与维护 10万+ Star 的开源技术资源库,包括:Python、Java、C/C++、Go、JS、CSS、Node.js、PHP、.NET 等。