Cleaned up init_connection_state in the psycopg2 backend.

settings_dict['TIME_ZONE'] is set in ConnectionHandler.ensure_defaults.
This commit is contained in:
Aymeric Augustin 2015-02-14 09:53:17 +01:00
parent 76356d963c
commit 28e97a9bdc
1 changed files with 18 additions and 19 deletions

View File

@ -186,27 +186,26 @@ class DatabaseWrapper(BaseDatabaseWrapper):
return connection return connection
def init_connection_state(self): def init_connection_state(self):
settings_dict = self.settings_dict
self.connection.set_client_encoding('UTF8') self.connection.set_client_encoding('UTF8')
tz = 'UTC' if settings.USE_TZ else settings_dict.get('TIME_ZONE')
if tz:
try:
get_parameter_status = self.connection.get_parameter_status
except AttributeError:
# psycopg2 < 2.0.12 doesn't have get_parameter_status
conn_tz = None
else:
conn_tz = get_parameter_status('TimeZone')
if conn_tz != tz: tz = self.settings_dict['TIME_ZONE']
cursor = self.connection.cursor() try:
try: get_parameter_status = self.connection.get_parameter_status
cursor.execute(self.ops.set_time_zone_sql(), [tz]) except AttributeError:
finally: # psycopg2 < 2.0.12 doesn't have get_parameter_status
cursor.close() conn_tz = None
# Commit after setting the time zone (see #17062) else:
if not self.get_autocommit(): conn_tz = get_parameter_status('TimeZone')
self.connection.commit()
if conn_tz != tz:
cursor = self.connection.cursor()
try:
cursor.execute(self.ops.set_time_zone_sql(), [tz])
finally:
cursor.close()
# Commit after setting the time zone (see #17062)
if not self.get_autocommit():
self.connection.commit()
def create_cursor(self): def create_cursor(self):
cursor = self.connection.cursor() cursor = self.connection.cursor()