Traceback (most recent call last): [DB] DATABASE_URL=mysql+aiomysql://homelab:password@127.0.0.1:3306/homelab, DEFAULT_DB_PATH=/mnt/c/dev/git/python/homelab-automation-api-v2/data/homelab.db, parent_exists=True, parent=/mnt/c/dev/git/python/homelab-automation-api-v2/data File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 143, in __init__ self._dbapi_connection = engine.raw_connection() ^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3309, in raw_connection return self.pool.connect() ^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 447, in connect return _ConnectionFairy._checkout(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1264, in _checkout fairy = _ConnectionRecord.checkout(pool) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 711, in checkout rec = pool._do_get() ^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/impl.py", line 306, in _do_get return self._create_connection() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 388, in _create_connection return _ConnectionRecord(self) ^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 673, in __init__ self.__connect() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 899, in __connect with util.safe_reraise(): File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 224, in __exit__ raise exc_value.with_traceback(exc_tb) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 895, in __connect self.dbapi_connection = connection = pool._invoke_creator(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/create.py", line 661, in connect return dialect.connect(*cargs, **cparams) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 630, in connect return self.loaded_dbapi.connect(*cargs, **cparams) # type: ignore[no-any-return] # NOQA: E501 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/aiomysql.py", line 170, in connect await_only(creator_fn(*arg, **kw)), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn value = await result ^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 74, in _connect await conn._connect() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 540, in _connect await self._request_authentication() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 865, in _request_authentication await self.caching_sha2_password_auth(auth_packet) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 989, in caching_sha2_password_auth pkt = await self._read_packet() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet packet.raise_for_error() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) pymysql.err.OperationalError: (1045, "Access denied for user 'homelab'@'172.17.0.1' (using password: YES)") The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/bin/alembic", line 8, in sys.exit(main()) ^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/alembic/config.py", line 1033, in main CommandLine(prog=prog).main(argv=argv) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/alembic/config.py", line 1023, in main self.run_cmd(cfg, options) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/alembic/config.py", line 957, in run_cmd fn( File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/alembic/command.py", line 483, in upgrade script.run_env() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/alembic/script/base.py", line 545, in run_env util.load_python_file(self.dir, "env.py") File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/alembic/util/pyfiles.py", line 116, in load_python_file module = load_module_py(module_id, path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/alembic/util/pyfiles.py", line 136, in load_module_py spec.loader.exec_module(module) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 995, in exec_module File "", line 488, in _call_with_frames_removed File "/mnt/c/dev/git/python/homelab-automation-api-v2/alembic/env.py", line 95, in run_migrations_online() File "/mnt/c/dev/git/python/homelab-automation-api-v2/alembic/env.py", line 89, in run_migrations_online asyncio.run(async_main()) File "/usr/lib/python3.12/asyncio/runners.py", line 194, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/asyncio/runners.py", line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/asyncio/base_events.py", line 687, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/alembic/env.py", line 85, in async_main async with connectable.connect() as connection: File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/base.py", line 121, in __aenter__ return await self.start(is_ctxmanager=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/ext/asyncio/engine.py", line 275, in start await greenlet_spawn(self.sync_engine.connect) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 201, in greenlet_spawn result = context.throw(*sys.exc_info()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3285, in connect return self._connection_cls(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 145, in __init__ Connection._handle_dbapi_exception_noconnection( File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2448, in _handle_dbapi_exception_noconnection raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 143, in __init__ self._dbapi_connection = engine.raw_connection() ^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 3309, in raw_connection return self.pool.connect() ^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 447, in connect return _ConnectionFairy._checkout(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 1264, in _checkout fairy = _ConnectionRecord.checkout(pool) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 711, in checkout rec = pool._do_get() ^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/impl.py", line 306, in _do_get return self._create_connection() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 388, in _create_connection return _ConnectionRecord(self) ^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 673, in __init__ self.__connect() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 899, in __connect with util.safe_reraise(): File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/util/langhelpers.py", line 224, in __exit__ raise exc_value.with_traceback(exc_tb) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/pool/base.py", line 895, in __connect self.dbapi_connection = connection = pool._invoke_creator(self) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/create.py", line 661, in connect return dialect.connect(*cargs, **cparams) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 630, in connect return self.loaded_dbapi.connect(*cargs, **cparams) # type: ignore[no-any-return] # NOQA: E501 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/dialects/mysql/aiomysql.py", line 170, in connect await_only(creator_fn(*arg, **kw)), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 132, in await_only return current.parent.switch(awaitable) # type: ignore[no-any-return,attr-defined] # noqa: E501 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 196, in greenlet_spawn value = await result ^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 74, in _connect await conn._connect() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 540, in _connect await self._request_authentication() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 865, in _request_authentication await self.caching_sha2_password_auth(auth_packet) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 989, in caching_sha2_password_auth pkt = await self._read_packet() ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/aiomysql/connection.py", line 652, in _read_packet packet.raise_for_error() File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error err.raise_mysql_exception(self._data) File "/mnt/c/dev/git/python/homelab-automation-api-v2/.venv/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception raise errorclass(errno, errval) sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user 'homelab'@'172.17.0.1' (using password: YES)") (Background on this error at: https://sqlalche.me/e/20/e3q8)