1
0
mirror of https://github.com/django/django.git synced 2024-12-22 17:16:24 +00:00

Fixed #30786 -- Used CONVERT_TZ to check if the time zone definitions are installed on MySQL.

Replaced a timezone check in the MySQL backend with one that doesn't
require access to the mysql.time_zone database.
This commit is contained in:
Andrew 2019-09-19 22:23:33 -04:00 committed by Mariusz Felisiak
parent bae05bcf68
commit 3346b78a8a

View File

@ -69,10 +69,11 @@ class DatabaseFeatures(BaseDatabaseFeatures):
@cached_property
def has_zoneinfo_database(self):
# Test if the time zone definitions are installed.
# Test if the time zone definitions are installed. CONVERT_TZ returns
# NULL if 'UTC' timezone isn't loaded into the mysql.time_zone.
with self.connection.cursor() as cursor:
cursor.execute("SELECT 1 FROM mysql.time_zone LIMIT 1")
return cursor.fetchone() is not None
cursor.execute("SELECT CONVERT_TZ('2001-01-01 01:00:00', 'UTC', 'UTC')")
return cursor.fetchone()[0] is not None
@cached_property
def is_sql_auto_is_null_enabled(self):