postgres数据库的cli。具有自动完成和语法突出显示功能。

pgcli的Python项目详细描述


Postgres的REPL

Build StatusCode coverage reportLatest VersionCode HealthGitter Chat

这是一个postgres客户端,它可以自动完成和语法突出显示。

主页:http://pgcli.com

mysql等价:http://mycli.net

screenshots/pgcli.gifscreenshots/image01.png

快速启动

如果您已经知道如何安装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包,请检查 detailed instructions

如果您被限制使用psycopg2 2.7.x,那么pip将尝试从二进制文件安装它。psycopg2.7二进制文件存在一些已知问题—有关此问题以及如何从源代码强制安装的详细信息,请参见psycopg docs。psycopg2.8已经修复了这些问题,并将从源代码构建。

用法

$ pgcli [database_name]

or

$ 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

功能

pgcli是使用prompt_toolkit编写的。

  • 键入SQL关键字以及表和 数据库中的列。

  • 使用pygments突出显示语法。

  • 智能完成(默认情况下启用)将建议区分上下文 完成。

    • ^{tt1}$ will only show table names.
    • ^{tt2}$ will only show column names.
  • psql反斜杠命令的基本支持。

  • 漂亮打印表格数据。

配置

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

贡献:

如果你对这个项目感兴趣,首先我想 表达我衷心的感谢。我写了一个小博士来描述如何 在开发设置中运行此程序。

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

如果你需要帮助,请随时联系我。 我的电子邮件:amjith.r@gmail.com,推特:@amjithr

详细安装说明:

macos:

安装pgcli的最简单方法是使用自制程序。

$ brew install pgcli

完成!

或者,您可以使用包将pgcli安装为python包 管理器调用了pip。您需要在系统上安装Postgres 为了这个工作。

pip-https://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系统:

pip-https://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

Docker

pgcli可以从Docker中运行。如果不使用pgcli 在系统范围内安装它或任何依赖项。

要生成图像:

$ docker build -t pgcli .

从图像创建容器:

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

要访问本地主机上侦听的PostgreSQL数据库,请确保运行 Docker处于“主机网络模式”。例如,访问名为“foo”的数据库 在本地主机上运行的PostgreSQL Server:5432(标准端口):

$ 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

伊普顿

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

退出PGCLI会话,使用{TT11}$,查找查询结果:

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 = _

谢谢:

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

Click用于命令行选项分析 以及打印错误消息。

感谢psycopg提供了坚固的岩石 Postgres数据库接口。

感谢所有的beta测试人员和贡献者的时间和耐心。:)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何从数组中打印int值?   prepared语句Java中奇怪的异常PreparedStatement:参数索引超出范围   封装如何在OOP Java中为主方法编码?   java某些手机显示快捷方式徽章需要什么权限?   java TextView不会随OnItemSelectedListener更改   java注释处理器不会自动触发吗?   java Spring JPA如何计算外键数   c#对于这个简单的OOAD问题,哪种设计最优雅?   java如何处理while循环中的异常?   Android Studio错误:进程'command'/home/draven/Downloads/安卓studio/jre/bin/java''结束,退出值为非零2   在使用Payara服务器的Vaadin应用程序中导航到根目录时,java将丢失上下文根目录   使用contentType application/json而不是application/jsonpatch+json的java修补程序   带有tomcat的java HAproxy连接不足   Java:在应用过滤器后创建一个简单的通用方法进行计数   java如何使用多态性创建一个实例化对象的方法,然后用它们高效地填充ArrayList?