postgres数据库的cli。具有自动完成和语法突出显示功能。
pgcli的Python项目详细描述
快速启动
如果您已经知道如何安装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包管理器安装
$ 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测试人员和贡献者的时间和耐心。:)