Loading django/db/backends/__init__.py +24 −10 Original line number Diff line number Diff line Loading @@ -86,11 +86,10 @@ class BaseDatabaseWrapper(object): """Creates a cursor. Assumes that a connection is established.""" raise NotImplementedError ##### Backend-specific wrappers for PEP-249 connection methods ##### ##### Backend-specific methods for creating connections ##### def _cursor(self): with self.wrap_database_errors(): if self.connection is None: def connect(self): """Connects to the database. Assumes that the connection is closed.""" # Reset parameters defining when to close the connection max_age = self.settings_dict['CONN_MAX_AGE'] self.close_at = None if max_age is None else time.time() + max_age Loading @@ -100,6 +99,20 @@ class BaseDatabaseWrapper(object): self.connection = self.get_new_connection(conn_params) self.init_connection_state() connection_created.send(sender=self.__class__, connection=self) def ensure_connection(self): """ Guarantees that a connection to the database is established. """ if self.connection is None: with self.wrap_database_errors(): self.connect() ##### Backend-specific wrappers for PEP-249 connection methods ##### def _cursor(self): self.ensure_connection() with self.wrap_database_errors(): return self.create_cursor() def _commit(self): Loading Loading @@ -285,6 +298,7 @@ class BaseDatabaseWrapper(object): """ Enable or disable autocommit. """ self.ensure_connection() self._set_autocommit(autocommit) self.autocommit = autocommit Loading django/db/backends/postgresql_psycopg2/base.py +0 −4 Original line number Diff line number Diff line Loading @@ -169,8 +169,6 @@ class DatabaseWrapper(BaseDatabaseWrapper): Switch the isolation level when needing transaction support, so that the same transaction is visible across all the queries. """ if self.connection is None: # Force creating a connection. self.cursor().close() if managed and self.autocommit: self.set_autocommit(False) Loading @@ -179,8 +177,6 @@ class DatabaseWrapper(BaseDatabaseWrapper): If the normal operating mode is "autocommit", switch back to that when leaving transaction management. """ if self.connection is None: # Force creating a connection. self.cursor().close() if not managed and not self.autocommit: self.rollback() # Must terminate transaction first. self.set_autocommit(True) Loading Loading
django/db/backends/__init__.py +24 −10 Original line number Diff line number Diff line Loading @@ -86,11 +86,10 @@ class BaseDatabaseWrapper(object): """Creates a cursor. Assumes that a connection is established.""" raise NotImplementedError ##### Backend-specific wrappers for PEP-249 connection methods ##### ##### Backend-specific methods for creating connections ##### def _cursor(self): with self.wrap_database_errors(): if self.connection is None: def connect(self): """Connects to the database. Assumes that the connection is closed.""" # Reset parameters defining when to close the connection max_age = self.settings_dict['CONN_MAX_AGE'] self.close_at = None if max_age is None else time.time() + max_age Loading @@ -100,6 +99,20 @@ class BaseDatabaseWrapper(object): self.connection = self.get_new_connection(conn_params) self.init_connection_state() connection_created.send(sender=self.__class__, connection=self) def ensure_connection(self): """ Guarantees that a connection to the database is established. """ if self.connection is None: with self.wrap_database_errors(): self.connect() ##### Backend-specific wrappers for PEP-249 connection methods ##### def _cursor(self): self.ensure_connection() with self.wrap_database_errors(): return self.create_cursor() def _commit(self): Loading Loading @@ -285,6 +298,7 @@ class BaseDatabaseWrapper(object): """ Enable or disable autocommit. """ self.ensure_connection() self._set_autocommit(autocommit) self.autocommit = autocommit Loading
django/db/backends/postgresql_psycopg2/base.py +0 −4 Original line number Diff line number Diff line Loading @@ -169,8 +169,6 @@ class DatabaseWrapper(BaseDatabaseWrapper): Switch the isolation level when needing transaction support, so that the same transaction is visible across all the queries. """ if self.connection is None: # Force creating a connection. self.cursor().close() if managed and self.autocommit: self.set_autocommit(False) Loading @@ -179,8 +177,6 @@ class DatabaseWrapper(BaseDatabaseWrapper): If the normal operating mode is "autocommit", switch back to that when leaving transaction management. """ if self.connection is None: # Force creating a connection. self.cursor().close() if not managed and not self.autocommit: self.rollback() # Must terminate transaction first. self.set_autocommit(True) Loading