diff --git a/fablednetmon/migrations/env.py b/fablednetmon/migrations/env.py index 14bc91c..26c3c90 100644 --- a/fablednetmon/migrations/env.py +++ b/fablednetmon/migrations/env.py @@ -23,12 +23,21 @@ def get_url() -> str: url = cfg.get("database", {}).get("url", "") except FileNotFoundError: url = "" - return os.environ.get("FABLEDNETMON_DATABASE__URL", url) + return ( + os.environ.get("FABLEDNETMON_DATABASE_URL") + or os.environ.get("FABLEDNETMON_DATABASE__URL") + or url + ) + + +def _resolved_url() -> str: + """Return URL from migration_runner config if set, else fall back to get_url().""" + return config.get_main_option("sqlalchemy.url") or get_url() def run_migrations_offline() -> None: context.configure( - url=get_url(), target_metadata=target_metadata, + url=_resolved_url(), target_metadata=target_metadata, literal_binds=True, dialect_opts={"paramstyle": "named"}, ) with context.begin_transaction(): @@ -43,7 +52,7 @@ def do_run_migrations(connection: Connection) -> None: async def run_async_migrations() -> None: cfg = config.get_section(config.config_ini_section, {}) - cfg["sqlalchemy.url"] = get_url() + cfg["sqlalchemy.url"] = _resolved_url() connectable = async_engine_from_config(cfg, prefix="sqlalchemy.", poolclass=pool.NullPool) async with connectable.connect() as connection: await connection.run_sync(do_run_migrations)