Permalink
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 Feb 18, 2013
Showing with 0 additions and 15 deletions.
  1. +0 −9 django/db/backends/mysql/base.py
  2. +0 −6 tests/regressiontests/backends/tests.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)
@@ -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):

0 comments on commit aea98e8

Please sign in to comment.