乌克兰人民正在为自己的国家而战。许多平民、妇女和儿童正在遭受苦难。数百人死伤,数千人流离失所。
这是我的家乡哈尔科夫的一张照片。这个地方就在老城区中心。
图片由@fomenko_ph(Telegram)提供。
请考虑捐赠或志愿服务。
https://bank.gov.ua/en/
https://savelife.in.ua/en/donate/
https://www.comebackalive.in.ua/donate
https://www.globalgiving.org/projects/ukraine-crisis-relief-fund/
https://www.savethechildren.org/us/where-we-work/ukraine
https://www.facebook.com/donate/1137971146948461/
https://donate.wck.org/give/393234#!/donation/checkout
https://atlantaforukraine.com/
这是一个 postgres 客户端,可以自动完成和语法突出显示。
主页:http://pgcli.com
MySQL 等效项:http://mycli.net
如果您已经知道如何安装 python 包,那么您可以简单地执行以下操作:
$ pip install -U pgcli 或者 $ sudo apt-get install pgcli # 仅适用于基于 Debian 的 Linux(例如 Ubuntu、Mint 等) $brew install pgcli # 仅在 macOS 上
如果您不知道如何安装python包,请查看详细说明。
$ pgcli [数据库名称] 或者 $ pgcli postgresql://[用户[:密码]@][netloc][:端口][/dbname][?extra=值[&other=其他值]]
示例:
$ pgcli 本地数据库 $ pgcli postgres://amjith:[email protected]:5432/app_db?sslmode=verify-ca&sslrootcert=/myrootcert
欲了解更多详情:
$ pgcli --帮助 用法:pgcli [选项] [数据库名称] [用户名] 选项: -h, --host TEXT postgres 数据库的主机地址。 -p, --port INTEGER postgres 实例所在的端口号 听。 -U, --username TEXT 连接到 postgres 数据库的用户名。 -u, --user TEXT 连接到 postgres 数据库的用户名。 -W, --password 强制提示密码。 -w, --no-password 不提示输入密码。 --single-connection 不要使用单独的连接来完成。 -v, --version pgcli 的版本。 -d, --dbname TEXT 要连接的数据库名称。 --pgclirc FILE 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 [all|moderate|off] 在运行破坏性查询之前发出警告。 --help 显示此消息并退出。
pgcli
还支持许多与psql
相同的环境变量作为登录选项(例如PGHOST
、 PGPORT
、 PGUSER
、 PGPASSWORD
、 PGDATABASE
)。
还支持与 SSL 相关的环境变量,因此如果需要通过 ssl 连接来连接 postgres 数据库,可以这样设置 set 环境:
导出 PGSSLMODE="验证完整" 导出 PGSSLCERT="/your-path-to-certs/client.crt" 导出 PGSSLKEY="/your-path-to-keys/client.key" 导出 PGSSLROOTCERT="/your-path-to-ca/ca.crt" pgcli -h localhost -p 5432 -U 用户名 postgres
pgcli 是使用prompt_toolkit 编写的。
当您键入 SQL 关键字以及数据库中的表和列时自动完成。
使用 Pygments 进行语法高亮显示。
智能完成(默认启用)将建议上下文相关的完成。
SELECT * FROM <tab>
将仅显示表名称。
SELECT * FROM users WHERE <tab>
将仅显示列名称。
对psql
反斜杠命令的原始支持。
漂亮地打印表格数据。
首次启动时会在~/.config/pgcli/config
中自动创建配置文件。有关所有可用选项的说明,请参阅文件本身。
如果您有兴趣为这个项目做出贡献,首先我谨表示衷心的感谢。我写了一个小文档来描述如何在开发设置中运行它。
https://github.com/dbcli/pgcli/blob/master/DEVELOP.rst
如果您需要帮助,请随时与我们联系。 * Amjith,pgcli 作者:[email protected],Twitter:@amjithr * Irina,pgcli 维护者:[email protected],Twitter:@irinatruong
安装 pgcli 最简单的方法是使用 Homebrew。
$brew 安装 pgcli
完毕!
或者,您可以使用名为pip
包管理器将pgcli
安装为 python 包。您需要在系统上安装 postgres 才能正常工作。
pip
的深入入门指南 - https://pip.pypa.io/en/latest/installation/
$ 哪个点
如果已安装,那么您可以执行以下操作:
$ pip 安装 pgcli
如果由于权限问题而失败,您可能需要使用 sudo 权限运行该命令。
$ sudo pip 安装 pgcli
如果未安装 pip,请检查系统上是否存在 easy_install。
$ 哪个 easy_install $ sudo easy_install pgcli
pip
的深入入门指南 - https://pip.pypa.io/en/latest/installation/
检查 pip 是否已在您的系统中可用。
$ 哪个点
如果不存在,请使用 Linux 包管理器安装 pip。这可能看起来像:
$ sudo apt-get install python-pip # Debian、Ubuntu、Mint 等 或者 $ sudo yum install python-pip # RHEL、Centos、Fedora 等
pgcli
需要 python-dev、libpq-dev 和 libevent-dev 软件包。您可以通过操作系统包管理器安装它们。
$ sudo apt-get install python-dev libpq-dev libevent-dev 或者 $ sudo yum install python-devel postgresql-devel
然后就可以安装pgcli了:
$ sudo pip 安装 pgcli
Pgcli 可以从 Docker 内运行。这对于在系统范围内尝试 pgcli 而不安装它或任何依赖项非常有用。
构建图像:
$ docker build -t pgcli .
要从图像创建容器:
$ docker run --rm -ti pgcli pgcli <ARGS>
要访问在本地主机上侦听的 postgresql 数据库,请确保在“主机网络模式”下运行 docker。例如,要访问在 localhost:5432(标准端口)上运行的 postgresql 服务器上名为“foo”的数据库:
$ docker run --rm -ti --net 主机 pgcli pgcli -h localhost foo
要通过 unix 套接字连接到本地运行的实例,请将套接字绑定到 docker 容器:
$ docker run --rm -ti -v /var/run/postgres:/var/run/postgres pgcli pgcli foo
Pgcli 可以从 IPython 控制台中运行。处理查询时,在不离开 IPython 控制台的情况下进入 pgcli 会话、迭代查询,然后退出 pgcli 以在 IPython 工作区中查找查询结果可能会很有用。
假设你已经安装了 IPython:
$ pip 安装 ipython-sql
之后,运行 ipython 并加载pgcli.magic
扩展:
$ ipython 在[1]中:%load_ext pgcli.magic
连接到数据库并构造查询:
在[2]中:%pgcli postgres://someone@localhost:5432/world 已连接:某人@world 有人@localhost:world> 从城市 c 选择*,其中国家/地区代码 = 'USA' 且人口 > 1000000; +------+--------------+----------------+------------ ---+--------------+ |编号 |名称 |国家/地区代码 |区 |人口| |------+--------------+----------------+------------ ---+--------------| | 3793 | 3793纽约 |美国 |纽约 | 8008278 | | 3794 | 3794洛杉矶|美国 |加利福尼亚州 | 3694820 | | 3795 | 3795芝加哥 |美国 |伊利诺伊州 | 2896016 | 2896016 | 3796 | 3796休斯顿 |美国 |德克萨斯州 | 1953631 | | 3797 | 3797费城 |美国 |宾夕法尼亚州 | 1517550 | | 3798 |凤凰城 |美国 |亚利桑那州 | 1321045 | 1321045 | 3799 | 3799圣地亚哥|美国 |加利福尼亚州 | 1223400 | | 3800 | 3800达拉斯 |美国 |德克萨斯州 | 1188580 | | 3801 | 3801圣安东尼奥 |美国 |德克萨斯州 | 1144646 | 1144646 +------+--------------+----------------+------------ ---+--------------+ 选择9 时间:0.003秒
使用Ctrl + D
退出 pgcli 会话并查找查询结果:
某人@localhost:world> 再见! 9 行受影响。 输出[2]: [(3793,u'纽约',u'美国',u'纽约',8008278), (3794,u'洛杉矶',u'美国',u'加利福尼亚',3694820), (3795, u'芝加哥', u'美国', u'伊利诺伊州, 2896016), (3796,u'休斯顿',u'美国',u'德克萨斯',1953631), (3797,u'费城',u'美国',u'宾夕法尼亚',1517550), (3798,u'凤凰城',u'美国',u'亚利桑那州',1321045), (3799,u'圣地亚哥',u'美国',u'加利福尼亚',1223400), (3800,达拉斯,美国,德克萨斯,1188580), (3801,u'圣安东尼奥',u'美国',u'德克萨斯',1144646)]
结果在特殊局部变量_
中可用,并且可以分配给您选择的变量:
在[3]中:my_result = _
从 4.0.0 开始,Pgcli 放弃了对 Python<3.8 的支持。如果需要,请安装pgcli <= 4.0.0
。
特别感谢 Jonathan Slenders 创建了 Python Prompt Toolkit,它实际上是骨干库,使这个应用程序成为可能。乔纳森还在该应用程序的开发过程中提供了宝贵的反馈和支持。
Click 用于命令行选项解析和打印错误消息。
感谢 psycopg 为 Postgres 数据库提供了坚如磐石的接口。
感谢所有 Beta 测试人员和贡献者的时间和耐心。 :)