Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Simplified MySQL version checking.

Django used to check the version of MySQL before handling the first
request, which required:
- opening a connection
- closing it, to avoid holding it idle until the first request.

This code isn't necessary any longer since Django dropped support for
some versions of MySQL, and other database backends don't implement a
similar dance. For consistency and maintenability, remove it.

Reverts 4423757.

Closes #18135.
  • Loading branch information...
commit aea98e8c5357b15da214af311e8cb74b1503f958 1 parent 29628e0
@aaugustin aaugustin authored
View
9 django/db/backends/mysql/base.py
@@ -464,16 +464,7 @@ def _rollback(self):
@cached_property
def mysql_version(self):
if not self.server_version:
- new_connection = False
- if not self._valid_connection():
- # Ensure we have a connection with the DB by using a temporary
- # cursor
- new_connection = True
- self.cursor().close()
server_info = self.connection.get_server_info()
- if new_connection:
- # Make sure we close the connection
- self.close()
m = server_version_re.match(server_info)
if not m:
raise Exception('Unable to determine MySQL version from version string %r' % server_info)
View
6 tests/regressiontests/backends/tests.py
@@ -123,12 +123,6 @@ def test_autoincrement(self):
else:
self.assertFalse(found_reset)
- @unittest.skipUnless(connection.vendor == 'mysql',
- "Test valid only for MySQL")
- def test_server_version_connections(self):
- connection.close()
- connection.mysql_version
- self.assertTrue(connection.connection is None)
class DateQuotingTest(TestCase):
Please sign in to comment.
Something went wrong with that request. Please try again.