我正在使用 Django 1.10 和 PostgreSQL 数据库。
我想弄清楚我是否可以从 Django 设置 statement_timeout
。
似乎我不能像 connect_timeout
那样(在 settings.py
中):
DATABASES[DEFAULT]['OPTIONS'] = {
'connect_timeout': float(os.getenv('DEFAULT_DB_OPTIONS_TIMEOUT', 5))
}
我看到了这样的东西,但我找不到验证它是否确实有效的方法:
DATABASES[DEFAULT]['OPTIONS'] = {
'options': '-d statement_timeout=700'
}
我知道我可以直接从数据库中设置它:
set statement_timeout=5000
但我正在寻找一种从 Django 中实现它的方法。
最佳答案
没有其他“Django”方法可以做到这一点。 Django 的方法是像您指出的那样使用您的 settings.py
,除了您的示例不太正确。应该是:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
...
'OPTIONS': {
'options': '-c statement_timeout=5000',
...
}
}
}
'OPTIONS' 字典用于数据库连接字符串的参数。可以找到 Postgres 参数列表 here . options
连接字符串参数允许您为 postgres 指定命令行参数。 -c
选项解释 here .
请注意,超时是以毫秒为单位测量的,因此上面的 5000
表示 5 秒。
关于python - Django - PostgreSQL 设置 statement_timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51360469/