diff options
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | changelog.rst | 1 | ||||
-rw-r--r-- | pgcli/main.py | 23 |
3 files changed, 13 insertions, 12 deletions
@@ -90,6 +90,7 @@ Contributors: * Mikhail Elovskikh (wronglink) * Marcin Cieślak (saper) * easteregg + * Scott Brenstuhl (808sAndBR) Creator: -------- diff --git a/changelog.rst b/changelog.rst index e1fbe5c7..e5f50985 100644 --- a/changelog.rst +++ b/changelog.rst @@ -5,6 +5,7 @@ Features: --------- * keybindings for closing the autocomplete list +* reconnect automatically when server closes connection Bug fixes: ---------- diff --git a/pgcli/main.py b/pgcli/main.py index 2e5cffde..856f28e3 100644 --- a/pgcli/main.py +++ b/pgcli/main.py @@ -555,7 +555,7 @@ class PGCli(object): except OperationalError as e: logger.error("sql: %r, error: %r", text, e) logger.error("traceback: %r", traceback.format_exc()) - self._handle_server_closed_connection() + self._handle_server_closed_connection(text) except PgCliQuitError as e: raise except Exception as e: @@ -810,17 +810,16 @@ class PGCli(object): return output, meta_query - def _handle_server_closed_connection(self): - """Used during CLI execution""" - reconnect = click.prompt( - 'Connection reset. Reconnect (Y/n)', - show_default=False, type=bool, default=True) - if reconnect: - try: - self.pgexecute.connect() - click.secho('Reconnected!\nTry the command again.', fg='green') - except OperationalError as e: - click.secho(str(e), err=True, fg='red') + def _handle_server_closed_connection(self, text): + """Used during CLI execution.""" + try: + click.secho('Reconnecting...', fg='green') + self.pgexecute.connect() + click.secho('Reconnected!', fg='green') + self.execute_command(text) + except OperationalError as e: + click.secho('Reconnect Failed', fg='red') + click.secho(str(e), err=True, fg='red') def refresh_completions(self, history=None, persist_priorities='all'): """ Refresh outdated completions |