从pg_service.conf列出postgres服务

时间:2017-03-23 09:19:28

标签: python postgresql service psycopg2

在postgres中,可以使用service connection file (pg_service.conf)在中心位置定义主机,端口,用户名,数据库名称等参数。

我想向用户显示所有当前可用服务的列表。

对于文件~/.pg_service.conf

[test_db]
host=localhost
db=test

[production_db]
host=4.3.2.1
db=prod

[other_db]
host=localhost
db=other

那应该是一个列表

  • TEST_DB
  • production_db
  • other_db

根据环境变量(PGSERVICEFILEPGSYSCONFDIR),用户目录,系统配置(pg_config --sysconfdir)解决这些服务的配置文件。如果存在多个文件,显然服务与某些优先级合并。

可以花一些时间来实现一些逻辑来执行此查找。但是可能有其他方法可以做到这一点?像

这样的东西
pg_config --list-services

我也有psycopg2 / python可用。所以类似下面这样的东西也会起作用

psycopg2.available_services()

收集系统上定义的所有可用服务的最简单(最可靠)方法是什么?

0 个答案:

没有答案