diff --git a/web/pgadmin/__init__.py b/web/pgadmin/__init__.py index fab4925cc3c..120f82dcab8 100644 --- a/web/pgadmin/__init__.py +++ b/web/pgadmin/__init__.py @@ -337,7 +337,11 @@ def get_locale(): ########################################################################## if config.CONFIG_DATABASE_URI is not None and \ len(config.CONFIG_DATABASE_URI) > 0: - app.config['SQLALCHEMY_DATABASE_URI'] = config.CONFIG_DATABASE_URI + _db_uri = re.sub( + r"^postgres(ql)?://", "postgresql+psycopg://", + config.CONFIG_DATABASE_URI, count=1 + ) + app.config['SQLALCHEMY_DATABASE_URI'] = _db_uri else: app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///{0}?timeout={1}' \ .format(config.SQLITE_PATH.replace('\\', '/'), diff --git a/web/pgadmin/utils/check_external_config_db.py b/web/pgadmin/utils/check_external_config_db.py index 7ac91aa6e08..fec4e6b792a 100644 --- a/web/pgadmin/utils/check_external_config_db.py +++ b/web/pgadmin/utils/check_external_config_db.py @@ -7,6 +7,8 @@ # ########################################################################## +import re + from sqlalchemy import create_engine, inspect @@ -15,6 +17,10 @@ def check_external_config_db(database_uri): Check if external config database exists if it is being used. """ + if database_uri.startswith(("postgresql://", "postgres://")): + database_uri = re.sub( + r"^postgres(ql)?://", "postgresql+psycopg://", database_uri, count=1 + ) engine = create_engine(database_uri) try: connection = engine.connect()