Skip to content


Subversion checkout URL

You can clone with
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...
1 parent 29628e0 commit aea98e8c5357b15da214af311e8cb74b1503f958 @aaugustin aaugustin committed
9 django/db/backends/mysql/
@@ -464,16 +464,7 @@ def _rollback(self):
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)
6 tests/regressiontests/backends/
@@ -123,12 +123,6 @@ def test_autoincrement(self):
- @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):

0 comments on commit aea98e8

Please sign in to comment.
Something went wrong with that request. Please try again.