|
2 | 2 | import os
|
3 | 3 |
|
4 | 4 | from django.core.exceptions import ImproperlyConfigured
|
5 |
| -from django.db import DEFAULT_DB_ALIAS, connections |
| 5 | +from django.db import DEFAULT_DB_ALIAS |
6 | 6 | from django.db.backends.base.base import BaseDatabaseWrapper
|
7 | 7 | from django.db.backends.utils import debug_transaction
|
8 | 8 | from django.utils.asyncio import async_unsafe
|
9 | 9 | from django.utils.functional import cached_property
|
10 | 10 | from pymongo.collection import Collection
|
11 | 11 | from pymongo.driver_info import DriverInfo
|
12 |
| -from pymongo.errors import EncryptionError |
13 | 12 | from pymongo.mongo_client import MongoClient
|
14 | 13 |
|
15 | 14 | from . import __version__ as django_mongodb_backend_version
|
@@ -287,10 +286,7 @@ def validate_no_broken_transaction(self):
|
287 | 286 |
|
288 | 287 | def get_database_version(self):
|
289 | 288 | """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