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
1 changed files with 4 additions and 3 deletions

View File

@ -69,10 +69,11 @@ class DatabaseFeatures(BaseDatabaseFeatures):
@cached_property @cached_property
def has_zoneinfo_database(self): 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: with self.connection.cursor() as cursor:
cursor.execute("SELECT 1 FROM mysql.time_zone LIMIT 1") cursor.execute("SELECT CONVERT_TZ('2001-01-01 01:00:00', 'UTC', 'UTC')")
return cursor.fetchone() is not None return cursor.fetchone()[0] is not None
@cached_property @cached_property
def is_sql_auto_is_null_enabled(self): def is_sql_auto_is_null_enabled(self):