Skip to content

Commit 534da6b

Browse files
committed
A better fix for using buildInfo command.
1 parent b13a07f commit 534da6b

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

django_mongodb_backend/base.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
import os
33

44
from django.core.exceptions import ImproperlyConfigured
5-
from django.db import DEFAULT_DB_ALIAS, connections
5+
from django.db import DEFAULT_DB_ALIAS
66
from django.db.backends.base.base import BaseDatabaseWrapper
77
from django.db.backends.utils import debug_transaction
88
from django.utils.asyncio import async_unsafe
99
from django.utils.functional import cached_property
1010
from pymongo.collection import Collection
1111
from pymongo.driver_info import DriverInfo
12-
from pymongo.errors import EncryptionError
1312
from pymongo.mongo_client import MongoClient
1413

1514
from . import __version__ as django_mongodb_backend_version
@@ -287,10 +286,7 @@ def validate_no_broken_transaction(self):
287286

288287
def get_database_version(self):
289288
"""Return a tuple of the database's version."""
290-
try:
291-
return tuple(self.connection.server_info()["versionArray"])
292-
except EncryptionError:
293-
# Work around self.connection.server_info's refusal to work
294-
# with encrypted connections.
295-
default_connection = connections[DEFAULT_DB_ALIAS]
296-
return default_connection.get_database_version()
289+
# Avoid PyMongo or require PyMongo>=4.14.0 which
290+
# will contain a fix for the buildInfo command.
291+
# https://jira.mongodb.org/browse/PYTHON-5429
292+
return tuple(self.connection.admin.command("buildInfo")["versionArray"])

0 commit comments

Comments
 (0)