diff --git a/web/config.py b/web/config.py index a154a91a3..bc67ead89 100644 --- a/web/config.py +++ b/web/config.py @@ -160,6 +160,10 @@ SQLITE_PATH = os.path.join( os.path.realpath(os.path.expanduser('~/.pgadmin/')), 'pgadmin4.db' ) +# SQLITE_TIMEOUT will define how long to wait before throwing the error - +# OperationError due to database lock. +# (Default: 500 milliseconds) +SQLITE_TIMEOUT = 500 ########################################################################## # Server-side session storage path diff --git a/web/pgadmin/__init__.py b/web/pgadmin/__init__.py index ece79f788..8850796e3 100644 --- a/web/pgadmin/__init__.py +++ b/web/pgadmin/__init__.py @@ -169,9 +169,10 @@ def create_app(app_name=config.APP_NAME): # Setup authentication ########################################################################## - app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///{0}'.format( - config.SQLITE_PATH.replace('\\', '/') - ) + app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///{0}?timeout={1}'.format( + config.SQLITE_PATH.replace('\\', '/'), + getattr(config, 'SQLITE_TIMEOUT', 500) + ) # Only enable password related functionality in server mode. if config.SERVER_MODE is True: