使用连接字符串在psycopg2中创建连接池

时间:2019-11-11 16:29:21

标签: python-3.x postgresql psycopg2

我通过将连接字符串传递给psycopg2.connect创建了一个连接对象,它工作正常。

所有设置都保存在字典中,并以此方式调用:

import psycopg2

connection_string = configs['database']['type'] + "://" + configs['database']['user'] + ":" + configs['database']['pass'] + "@" + configs['database']['server'] + '/' + configs['database']['db']
connection = psycopg2.connect(connection_string)

但是我想创建一个简单的连接池,并传递相同的设置会产生错误

import psycopg2
from psycopg2 import pool

connection_pool = psycopg2.pool.SimpleConnectionPool(1,100,
                                                     user=configs['database']['user'],
                                                     password=configs['database']['pass'],
                                                     host=configs['database']['type'] + "://" + configs['database']['server'],
                                                     port=5432,
                                                     database=configs['database']['db'])

我收到此错误消息:

psycopg2.OperationalError: could not translate host name "xxxxx.xxxxx.rds.amazonaws.com:5432" to address: Unknown host

我为主机尝试了其他值,例如在主机名的开头添加“ postgresql://”,但它不起作用。

1 个答案:

答案 0 :(得分:1)

看起来configs ['database'] ['server']的末尾加上了“:5432”。您将需要更改配置以将其删除,或者将数据条目解析为真实服务器和端口号两部分。