Pgcli–带自动补全和语法突出显示的Postgres CLI

2022-02-15 02:32:10

$pip install-U pgclior$sudo apt get install pgcli#仅适用于基于Debian的Linux(如Ubuntu、Mint等)$brew install pgcli#仅适用于macOS

如果您仅限于使用psycopg2 2.7。然后pip将尝试从二进制文件安装它。psycopg2 2.7二进制文件存在一些已知问题——请参阅psycopg文档,以了解有关这一点以及如何从源代码强制安装的更多信息。psycopg2 2.8已经修复了这些问题,并将从源代码开始构建。

$pgcli--helpUsage:pgcli[OPTIONS][DBNAME][USERNAME]OPTIONS:-h,--postgres数据库的主机文本主机地址-p、 --端口整数postgres实例正在侦听的端口号-U、 --连接到postgres数据库的用户名文本用户名-u、 --连接到postgres数据库的用户文本用户名-W、 --密码强制密码提示-w、 --无密码从不提示输入密码--单一连接不使用单独的连接来完成-v、 --pgcli的版本-d、 --要连接的dbname文本数据库名称--pgclirc文件pgclirc文件的位置-D、 --dsn TEXT使用配置到pgclirc文件[alias_dsn]部分的dsn--列出配置到pgclirc文件[alias_dsn]部分的dsn列表--行限制整数设置行限制提示的阈值。使用0禁用提示--不要那么健谈,启动时跳过介绍,退出时再见--提示文本提示格式(默认值:";\u@\h:\d>;";)--使用dsn别名的连接的提示dsn文本提示格式(默认值:";\u@\h:\d>;";)-l、 --列出可用的数据库,然后退出--自动垂直输出如果结果大于终端宽度,则自动切换到垂直输出模式--警告[全部|适度|关闭]在运行破坏性查询之前发出警告--帮助显示此消息并退出。

pgcli还支持许多与psql相同的登录选项环境变量(例如PGHOST、PGPORT、PGUSER、PGPASSWORD、PGDATABASE)。

还支持与SSL相关的环境变量,因此如果需要通过SSL连接连接postgres数据库,可以如下设置环境:

在数据库中键入SQL关键字以及表和列时,自动完成。

配置文件在~/处自动创建。第一次启动时的config/pgcli/config。有关所有可用选项的说明,请参见文件本身。

如果你';如果你有兴趣为这个项目做出贡献,首先我想表达我衷心的感谢。我';我已经写了一个小文档来描述如何在开发设置中运行它。

如果你需要帮助,请随时联系我。我的电子邮件:amjith。[email protected],推特:@amjithr

或者,可以使用名为pip的packagemanager将pgcli作为python包安装。你需要在你的系统上安装postgres才能正常工作。

如果由于权限问题而失败,则可能需要使用sudo权限运行该命令。

如果没有';如果不存在,请使用linux软件包管理器安装pip。这看起来可能是:

$sudo apt get install python pip#Debian、Ubuntu、Mint等$sudo yum install python pip#RHEL、Centos、Fedora等

pgcli需要python开发包、libpq开发包和libevent开发包。您可以通过操作系统包管理器安装这些。

Pgcli可以从Docker内部运行。这对于在不暂停pgcli或任何依赖项的情况下在系统范围内尝试pgcli非常有用。

要访问在本地主机上侦听的postgresql数据库,请确保在";主机网络模式";。例如,访问名为"的数据库;34岁;在本地主机5432(标准端口)上运行的PostgreSQL server上:

要通过unix套接字连接到本地运行的实例,请将套接字绑定到docker容器:

Pgcli可以在IPython控制台内运行。在处理查询时,在不离开IPython控制台的情况下进入pgcli会话,在aquery上迭代,然后退出pgcli以在IPython工作区中查找查询结果可能会很有用。

在[2]中:%pgclipostgres://someone@本地主机:5432/WorldConnect:someone@worldsomeone@localhost:world>;从城市c中选择*,其中countrycode=';美国';和人口>;1000000;+------+--------------+---------------+--------------+--------------+| 4.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------第四四四四四四四4 4 4 4 4 4 4 4 4 4天,美国纽约州(纽约)纽约州(美国)纽约州(美国)纽约州(美国)美国,纽约州(纽约)美国)纽约州(纽约州)市(纽约市)的)国家(纽约市)的)2008 2008 2008 2008 2008 2008 2008 2008 2008 2008 2008 2008 2008 2008 2008年(1242007 2007 200712412441244124412441244124;2007 2007 2007 2007 2007 2007 2007 2007年年年;2007 2007 2007 2007 2007 2007年;美国洛杉矶洛杉矶洛杉矶洛杉矶(洛杉矶(洛杉矶(洛杉矶)美国)洛杉矶(美国)洛杉矶(洛杉矶)洛杉矶(洛杉矶)洛杉矶(美国)美国)洛杉矶(美国)洛杉矶(美国)美国)美国)洛杉矶(美国)美国)美国美国美国美国美国A |美国|宾夕法尼亚|1517550 | 3798 |菲尼克斯|美国|亚利桑那| 1321045 | 3799 |圣迭戈|美国|加利福尼亚| 1223400 | 3800 |达拉斯|美国|德克萨斯| 1188580 | 3801 |圣安东尼奥|美国|德克萨斯| 1144646 |+------------------+---------选择时间

someone@localhost:世界>;再见9行受影响。(3)表示(2)n n n n(3)n n(3)n n n(3)n n n(2)n n n(3)n n n(3)n(3)n(3)3)n n(3)3)n n n)n n n n n)n n(3)3)3)n)n n n n(3)n(3)3)n)n n n(3)n(3)n)n)n)n(3)n(3)n(3)n)n)n)n)n(3)n)n)n)n(3)n)n)n)n)n(3)n)n)n(3,n)n)n)n(3)n)n)n)n(3,n)n)n)n)n)n(3)n)n)n(3)n)n)n(3)n)n)n(3)n(3)n)n)n)n(3)n)n(3796,u';u';u';u';美国';u';德克萨斯';1953631),(3797,u和(39)u和(37 97,u和(39)39;费城和39;u和(39)u和(39)美国,美国和(39)美国,u和(39),u和(39)美国,u和(39)宾夕法尼亚州和(39)39;宾夕法尼亚州和(39)39;宾夕法尼亚州和(39)39,1517550),1517550,(3798,u和(98,u和(39)98,u和(39)u和(39)39)费城;凤凰和(39)凤凰(39)凤凰(39)凤凰和(39)凤凰(39)凤凰和(39)39)凤凰(39)39)凤凰,39)39,美国,美国,美国,美国,美国,美国,美国39;39;39;美国;美国;美国;39;美国;美国;美国;美国;美国;美国;美国;美国;美国和39;美国和39;美国;美国;美国和39;美国;美国和39;美国;美国;美国;美国和39;美国和(3800,u和#39;u和#39;达拉斯和#39;u和#39;美国和#39;u和#39;德克萨斯和#39;1188580),(3801,u和#39;圣安东尼奥和#39;,u和#39;美国和#39;,u和#39;德克萨斯州和#39;,1144646)]

结果可在特殊的局部变量u中获得,并可分配给您选择的变量:

Pgcli仅在Python3上运行。6+自2.2.0以来,如果使用旧版本的Python,则应使用install pgcli<;=2.2.0.

特别感谢Jonathan Slenders创建Python Prompt Toolkit,它实际上是主干库,使这个应用成为可能。Jonathan在该应用的开发过程中也提供了宝贵的反馈和支持。