From cc625c7338e53641a32a91c5fa792e8f723db490 Mon Sep 17 00:00:00 2001 From: Adrian Edwards Date: Mon, 16 Mar 2026 10:49:04 -0400 Subject: [PATCH 1/4] inject augur and version into engine connection args based on https://stackoverflow.com/questions/15685861/setting-application-name-on-postgres-sqlalchemy Signed-off-by: Adrian Edwards --- augur/api/server.py | 2 +- augur/application/cli/db.py | 3 ++- augur/application/db/__init__.py | 6 ++++-- conftest.py | 5 +++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/augur/api/server.py b/augur/api/server.py index e66228c518..2faa40bbec 100644 --- a/augur/api/server.py +++ b/augur/api/server.py @@ -329,7 +329,7 @@ def get_server_cache(cache_manager) -> Cache: logger = AugurLogger("server").get_logger() url = get_database_string() -engine = create_database_engine(url, poolclass=StaticPool) +engine = create_database_engine(url, poolclass=StaticPool, connect_args={"application_name": f"augur v{augur_code_version}"}) db_session = DatabaseSession(logger, engine) augur_config = AugurConfig(logger, db_session) diff --git a/augur/application/cli/db.py b/augur/application/cli/db.py index a989050518..1b380dbcc7 100644 --- a/augur/application/cli/db.py +++ b/augur/application/cli/db.py @@ -12,6 +12,7 @@ import json import re import stat as stat_module +from metadata import __version__ from augur.application.cli import ( test_connection, @@ -511,7 +512,7 @@ def run_psql_command_in_database(target_type, target): database_name = db_config["database_name"] db_conn_string = f"postgresql+psycopg2://{db_config['user']}:{db_config['password']}@{db_config['host']}:{db_config['port']}/{db_config['database_name']}" - engine = s.create_engine(db_conn_string) + engine = s.create_engine(db_conn_string, connect_args={"application_name": f"augur v{__version__}"}) check_call( [ diff --git a/augur/application/db/__init__.py b/augur/application/db/__init__.py index f460bee363..29cfb0d7b7 100644 --- a/augur/application/db/__init__.py +++ b/augur/application/db/__init__.py @@ -4,6 +4,8 @@ from augur.application.db.engine import create_database_engine, get_database_string +from metadata import __version__ + engine = None Session = None @@ -12,7 +14,7 @@ def get_engine(): if engine is None: url = get_database_string() - engine = create_database_engine(url=url, poolclass=StaticPool) + engine = create_database_engine(url=url, poolclass=StaticPool, connect_args={"application_name": f"augur v{__version__}"}) Session = sessionmaker(bind=engine) return engine @@ -42,7 +44,7 @@ def get_session(): def temporary_database_engine(): url = get_database_string() - temporary_database_engine = create_database_engine(url=url, poolclass=StaticPool) + temporary_database_engine = create_database_engine(url=url, poolclass=StaticPool, connect_args={"application_name": f"augur v{__version__}"}) try: yield temporary_database_engine diff --git a/conftest.py b/conftest.py index 218ba31950..da3da58870 100644 --- a/conftest.py +++ b/conftest.py @@ -13,7 +13,7 @@ from augur.application.db.session import DatabaseSession from augur.application.config import AugurConfig from augur.application.db.engine import get_database_string, create_database_engine, parse_database_string, execute_sql_file - +from metadata import __version__ logger = logging.getLogger(__name__) @@ -104,7 +104,8 @@ def generate_db_from_template(template_name): create_database(conn, cursor, test_db_name, template_name) # create engine to connect to db - engine = create_database_engine(test_db_string, poolclass=StaticPool) + engine = create_database_engine(test_db_string, poolclass=StaticPool, connect_args={"application_name": f"augur v{__version__}"}) + yield engine From e4f9fbd819a8e0ed114577bfbd83872c5f243e14 Mon Sep 17 00:00:00 2001 From: Adrian Edwards Date: Mon, 16 Mar 2026 15:01:17 -0400 Subject: [PATCH 2/4] remove import of version from CLI due to issues finding the module Signed-off-by: Adrian Edwards --- augur/application/cli/db.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/augur/application/cli/db.py b/augur/application/cli/db.py index 1b380dbcc7..16b142e78d 100644 --- a/augur/application/cli/db.py +++ b/augur/application/cli/db.py @@ -12,7 +12,6 @@ import json import re import stat as stat_module -from metadata import __version__ from augur.application.cli import ( test_connection, @@ -512,7 +511,7 @@ def run_psql_command_in_database(target_type, target): database_name = db_config["database_name"] db_conn_string = f"postgresql+psycopg2://{db_config['user']}:{db_config['password']}@{db_config['host']}:{db_config['port']}/{db_config['database_name']}" - engine = s.create_engine(db_conn_string, connect_args={"application_name": f"augur v{__version__}"}) + engine = s.create_engine(db_conn_string, connect_args={"application_name": f"augur cli"}) check_call( [ From 1c51481070cedb6f922b2ac6f978ebbb6d7863b6 Mon Sep 17 00:00:00 2001 From: Adrian Edwards Date: Mon, 16 Mar 2026 15:01:30 -0400 Subject: [PATCH 3/4] adjust names to indicate the source better for debugging Signed-off-by: Adrian Edwards --- augur/api/server.py | 2 +- augur/application/db/__init__.py | 2 +- conftest.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/augur/api/server.py b/augur/api/server.py index 2faa40bbec..77eb83bd82 100644 --- a/augur/api/server.py +++ b/augur/api/server.py @@ -329,7 +329,7 @@ def get_server_cache(cache_manager) -> Cache: logger = AugurLogger("server").get_logger() url = get_database_string() -engine = create_database_engine(url, poolclass=StaticPool, connect_args={"application_name": f"augur v{augur_code_version}"}) +engine = create_database_engine(url, poolclass=StaticPool, connect_args={"application_name": f"augur v{augur_code_version} api"}) db_session = DatabaseSession(logger, engine) augur_config = AugurConfig(logger, db_session) diff --git a/augur/application/db/__init__.py b/augur/application/db/__init__.py index 29cfb0d7b7..067f82f2c4 100644 --- a/augur/application/db/__init__.py +++ b/augur/application/db/__init__.py @@ -44,7 +44,7 @@ def get_session(): def temporary_database_engine(): url = get_database_string() - temporary_database_engine = create_database_engine(url=url, poolclass=StaticPool, connect_args={"application_name": f"augur v{__version__}"}) + temporary_database_engine = create_database_engine(url=url, poolclass=StaticPool, connect_args={"application_name": f"augur v{__version__} temporary"}) try: yield temporary_database_engine diff --git a/conftest.py b/conftest.py index da3da58870..4a9d28b3c6 100644 --- a/conftest.py +++ b/conftest.py @@ -104,7 +104,7 @@ def generate_db_from_template(template_name): create_database(conn, cursor, test_db_name, template_name) # create engine to connect to db - engine = create_database_engine(test_db_string, poolclass=StaticPool, connect_args={"application_name": f"augur v{__version__}"}) + engine = create_database_engine(test_db_string, poolclass=StaticPool, connect_args={"application_name": f"augur tests v{__version__}"}) yield engine From 2f11f27c6fd7dd4ec88e98a2d9611ad905e72b49 Mon Sep 17 00:00:00 2001 From: Adrian Edwards Date: Mon, 16 Mar 2026 15:17:28 -0400 Subject: [PATCH 4/4] all the augur imports are too risky Signed-off-by: Adrian Edwards --- augur/application/db/__init__.py | 4 +--- conftest.py | 3 +-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/augur/application/db/__init__.py b/augur/application/db/__init__.py index 067f82f2c4..fe9f0d1e01 100644 --- a/augur/application/db/__init__.py +++ b/augur/application/db/__init__.py @@ -4,8 +4,6 @@ from augur.application.db.engine import create_database_engine, get_database_string -from metadata import __version__ - engine = None Session = None @@ -14,7 +12,7 @@ def get_engine(): if engine is None: url = get_database_string() - engine = create_database_engine(url=url, poolclass=StaticPool, connect_args={"application_name": f"augur v{__version__}"}) + engine = create_database_engine(url=url, poolclass=StaticPool, connect_args={"application_name": f"augur"}) Session = sessionmaker(bind=engine) return engine diff --git a/conftest.py b/conftest.py index 4a9d28b3c6..b72b400021 100644 --- a/conftest.py +++ b/conftest.py @@ -13,7 +13,6 @@ from augur.application.db.session import DatabaseSession from augur.application.config import AugurConfig from augur.application.db.engine import get_database_string, create_database_engine, parse_database_string, execute_sql_file -from metadata import __version__ logger = logging.getLogger(__name__) @@ -104,7 +103,7 @@ def generate_db_from_template(template_name): create_database(conn, cursor, test_db_name, template_name) # create engine to connect to db - engine = create_database_engine(test_db_string, poolclass=StaticPool, connect_args={"application_name": f"augur tests v{__version__}"}) + engine = create_database_engine(test_db_string, poolclass=StaticPool, connect_args={"application_name": f"augur tests"}) yield engine