diff --git a/web/pgadmin/browser/server_groups/servers/databases/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/__init__.py index f3471ef..4590d6c 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/__init__.py @@ -634,6 +634,17 @@ class DatabaseView(PGChildNodeView): if SQL and SQL != "": status, msg = conn.execute_scalar(SQL) if not status: + # In case of error from server while rename it, + # reconnect to the database with old name again. + self.conn = self.manager.connection( + database=data['old_name'], auto_reconnect=True + ) + status, errmsg = self.conn.connect() + if not status: + current_app.logger.error( + 'Could not reconnected to database(#{0}).\n' + 'Error: {1}'.format(did, errmsg) + ) return internal_server_error(errormsg=msg) # Make connection for database again diff --git a/web/pgadmin/utils/driver/psycopg2/server_manager.py b/web/pgadmin/utils/driver/psycopg2/server_manager.py index 30a7a75..20ce194 100644 --- a/web/pgadmin/utils/driver/psycopg2/server_manager.py +++ b/web/pgadmin/utils/driver/psycopg2/server_manager.py @@ -273,8 +273,10 @@ WHERE db.oid = {0}""".format(did)) self.connections.pop(conn_info['conn_id']) def release(self, database=None, conn_id=None, did=None): - # Stop the SSH tunnel if created. - self.stop_ssh_tunnel() + # Stop the SSH tunnel if release() function calls without + # any parameter. + if database is None and conn_id is None and did is None: + self.stop_ssh_tunnel() if did is not None: if did in self.db_info and 'datname' in self.db_info[did]: