mirror of
https://github.com/django/django.git
synced 2024-12-22 17:16:24 +00:00
Simplified using DATABASES["OPTIONS"].
DATABASES["OPTIONS"] are always configured.
This commit is contained in:
parent
b9d539cca7
commit
50e95ad536
@ -190,9 +190,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
|||||||
def get_connection_params(self):
|
def get_connection_params(self):
|
||||||
settings_dict = self.settings_dict
|
settings_dict = self.settings_dict
|
||||||
# None may be used to connect to the default 'postgres' db
|
# None may be used to connect to the default 'postgres' db
|
||||||
if settings_dict["NAME"] == "" and not settings_dict.get("OPTIONS", {}).get(
|
if settings_dict["NAME"] == "" and not settings_dict["OPTIONS"].get("service"):
|
||||||
"service"
|
|
||||||
):
|
|
||||||
raise ImproperlyConfigured(
|
raise ImproperlyConfigured(
|
||||||
"settings.DATABASES is improperly configured. "
|
"settings.DATABASES is improperly configured. "
|
||||||
"Please supply the NAME or OPTIONS['service'] value."
|
"Please supply the NAME or OPTIONS['service'] value."
|
||||||
@ -215,7 +213,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
|||||||
}
|
}
|
||||||
elif settings_dict["NAME"] is None:
|
elif settings_dict["NAME"] is None:
|
||||||
# Connect to the default 'postgres' db.
|
# Connect to the default 'postgres' db.
|
||||||
settings_dict.get("OPTIONS", {}).pop("service", None)
|
settings_dict["OPTIONS"].pop("service", None)
|
||||||
conn_params = {"dbname": "postgres", **settings_dict["OPTIONS"]}
|
conn_params = {"dbname": "postgres", **settings_dict["OPTIONS"]}
|
||||||
else:
|
else:
|
||||||
conn_params = {**settings_dict["OPTIONS"]}
|
conn_params = {**settings_dict["OPTIONS"]}
|
||||||
@ -300,7 +298,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
|||||||
def ensure_role(self):
|
def ensure_role(self):
|
||||||
if self.connection is None:
|
if self.connection is None:
|
||||||
return False
|
return False
|
||||||
if new_role := self.settings_dict.get("OPTIONS", {}).get("assume_role"):
|
if new_role := self.settings_dict["OPTIONS"].get("assume_role"):
|
||||||
with self.connection.cursor() as cursor:
|
with self.connection.cursor() as cursor:
|
||||||
sql = self.ops.compose_sql("SET ROLE %s", [new_role])
|
sql = self.ops.compose_sql("SET ROLE %s", [new_role])
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
@ -324,8 +322,7 @@ class DatabaseWrapper(BaseDatabaseWrapper):
|
|||||||
def create_cursor(self, name=None):
|
def create_cursor(self, name=None):
|
||||||
if name:
|
if name:
|
||||||
if is_psycopg3 and (
|
if is_psycopg3 and (
|
||||||
self.settings_dict.get("OPTIONS", {}).get("server_side_binding")
|
self.settings_dict["OPTIONS"].get("server_side_binding") is not True
|
||||||
is not True
|
|
||||||
):
|
):
|
||||||
# psycopg >= 3 forces the usage of server-side bindings for
|
# psycopg >= 3 forces the usage of server-side bindings for
|
||||||
# named cursors so a specialized class that implements
|
# named cursors so a specialized class that implements
|
||||||
|
@ -9,7 +9,7 @@ class DatabaseClient(BaseDatabaseClient):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def settings_to_cmd_args_env(cls, settings_dict, parameters):
|
def settings_to_cmd_args_env(cls, settings_dict, parameters):
|
||||||
args = [cls.executable_name]
|
args = [cls.executable_name]
|
||||||
options = settings_dict.get("OPTIONS", {})
|
options = settings_dict["OPTIONS"]
|
||||||
|
|
||||||
host = settings_dict.get("HOST")
|
host = settings_dict.get("HOST")
|
||||||
port = settings_dict.get("PORT")
|
port = settings_dict.get("PORT")
|
||||||
|
@ -14,6 +14,7 @@ class PostgreSqlDbshellCommandTestCase(SimpleTestCase):
|
|||||||
def settings_to_cmd_args_env(self, settings_dict, parameters=None):
|
def settings_to_cmd_args_env(self, settings_dict, parameters=None):
|
||||||
if parameters is None:
|
if parameters is None:
|
||||||
parameters = []
|
parameters = []
|
||||||
|
settings_dict.setdefault("OPTIONS", {})
|
||||||
return DatabaseClient.settings_to_cmd_args_env(settings_dict, parameters)
|
return DatabaseClient.settings_to_cmd_args_env(settings_dict, parameters)
|
||||||
|
|
||||||
def test_basic(self):
|
def test_basic(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user