Skip to content

Commit 7973bb4

Browse files
ESnarkcrivetimihai
authored andcommitted
fix: escape % characters in DATABASE for Alembic config
Signed-off-by: ESnark <31977180+ESnark@users.noreply.github.com>
1 parent a43f225 commit 7973bb4

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

mcpgateway/alembic/env.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,9 +165,11 @@ def _modify_metadata_for_mariadb():
165165
# my_important_option = config.get_main_option("my_important_option")
166166
# ... etc.
167167

168+
# Escape '%' characters in URL to avoid configparser interpolation errors
169+
# (e.g., URL-encoded passwords like %40 for '@')
168170
config.set_main_option(
169171
"sqlalchemy.url",
170-
settings.database_url,
172+
settings.database_url.replace("%", "%%"),
171173
)
172174

173175

mcpgateway/bootstrap_db.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,10 @@ async def main() -> None:
257257

258258
with engine.begin() as conn:
259259
cfg.attributes["connection"] = conn
260-
cfg.set_main_option("sqlalchemy.url", settings.database_url)
260+
# Escape '%' characters in URL to avoid configparser interpolation errors
261+
# (e.g., URL-encoded passwords like %40 for '@')
262+
escaped_url = settings.database_url.replace("%", "%%")
263+
cfg.set_main_option("sqlalchemy.url", escaped_url)
261264

262265
insp = inspect(conn)
263266

0 commit comments

Comments
 (0)