跳转到主要内容

以`postgres`超级用户身份连接到现有的PostgreSQL集群并执行SQL命令。

项目描述

Build Status Coverage Status PyPI version GitHub license

pgsu

以PostgreSQL SUPERUSER的身份连接到现有的PostgreSQL集群并执行SQL命令。

psycopg提供了一个很好的API来与PostgreSQL交互,一旦你为指定的数据库提供了连接参数。然而,如果你的数据库和数据库用户尚未存在,你将需要以SUPERUSER的身份连接到PostgreSQL。

功能

  • 自动检测postgres设置,已在
  • 如果可能,使用 psycopg 连接
  • 如果必要/可能,可以使用 sudo 变成 postgres UNIX 用户(默认 Ubuntu PostgreSQL 设置)

用法

Python API

from pgsu import PGSU
pgsu = PGSU()  # On Ubuntu, this may prompt for sudo password
pgsu.execute("CREATE USER newuser WITH PASSWORD 'newpassword'")
users = pgsu.execute("SELECT usename FROM pg_user WHERE usename='newuser'")
print(users)

该包的主要目的是猜测如何以 postgres 超用户身份连接,您也可以使用 dsn 参数提供部分或全部有关设置的详细信息。以下是默认设置

from pgsu import PGSU
pgsu = PGSU(dsn={
    'host': None,
    'port': 5432,
    'user': 'postgres',
    'password': None,
    'dbname': 'template1',  # Note: you cannot drop databases you are connected to
})

命令行工具

该包还包括一个基本的 pgsu 命令行工具,允许用户以超级用户身份执行 PostgreSQL 命令

$ pgsu "SELECT usename FROM pg_user"
Trying to connect to PostgreSQL...
Executing query: SELECT usename FROM pg_user
[('aiida_qs_leopold',),
 ('postgres',)]

测试

按以下方式运行测试

pip install -e .[dev]
pytest

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源分布

pgsu-0.3.0.tar.gz (8.2 kB 查看哈希值)

上传时间

构建分布

pgsu-0.3.0-py3-none-any.whl (8.8 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面