我有一个带Postgresql后端的Django网站,我正在利用它来pgbouncer进行数据库连接池(事务模式).
应用程序和数据库驻留在不同的服务器上(每个服务器1个).我已经安装pgbouncer在应用程序服务器上.我的问题是:配置应该是什么settings.py?请注意,我使用Unix套接字连接到pgbouncer.
我目前settings.py包含:
DATABASE_URL = 'postgres://user1:pass1@xx.xxx.xxx.xxx:5432/db1'
DATABASES = {
'default': dj_database_url.config(default=DATABASE_URL)
}
Run Code Online (Sandbox Code Playgroud)
相关部分pgbouncer.ini是:
[databases]
db1 = host=xx.xxx.xxx.xxx port=5432 dbname=db1
listen_addr = *
listen_port = 6432
auth_type = md5
unix_socket_dir = /var/run/postgresql
pool_mode = transaction
max_client_conn = 200
default_pool_size = 300
Run Code Online (Sandbox Code Playgroud)
userlist.txt 包含:
"user1" "pass1"
Run Code Online (Sandbox Code Playgroud)
注意:这里有一个答案,但对我来说不起作用,因为在我的情况下DB不在本地.我需要设置DATABASE_URL环境变量,而不是使用default = '...'.
一个建议似乎是pgbouncer作为一个数据库对待settings.py.在那种情况下,会有类似下面的工作吗?
if PRODUCTION == '1':
#PRODUCTION is set to '1' if in production …Run Code Online (Sandbox Code Playgroud)