[2026-06-29 10:57:28,980] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 144, in __init__
    self._dbapi_connection = engine.raw_connection()
                             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 3319, in raw_connection
    return self.pool.connect()
           ^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 448, in connect
    return _ConnectionFairy._checkout(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 1272, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 712, in checkout
    rec = pool._do_get()
          ^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/impl.py", line 178, in _do_get
    with util.safe_reraise():
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/impl.py", line 176, in _do_get
    return self._create_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 389, in _create_connection
    return _ConnectionRecord(self)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 674, in __init__
    self.__connect()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 900, in __connect
    with util.safe_reraise():
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 896, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/create.py", line 667, in connect
    return dialect.connect(*cargs_tup, **cparams)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/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 "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 372, in __init__
    self.connect()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 702, in connect
    self._request_authentication()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 1000, in _request_authentication
    auth_packet = self._read_packet()
                  ^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 803, in _read_packet
    packet.raise_for_error()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/err.py", line 154, in raise_mysql_exception
    raise errorclass(errno, errval, sqlstate=sqlstate)
pymysql.err.OperationalError: (1044, "Access denied for user 'spargovx_time_tracker'@'localhost' to database 'spargovx_time_tracker_007'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/setup.sparknest.com.au/app/routes.py", line 270, in index
    buildings = Building.query.filter_by(status=True).all()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/query.py", line 2711, in all
    return self._iter().all()  # type: ignore
           ^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/query.py", line 2864, in _iter
    result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
                                                  ^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/session.py", line 2373, in execute
    return self._execute_internal(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/session.py", line 2261, in _execute_internal
    conn = self._connection_for_bind(bind)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/session.py", line 2113, in _connection_for_bind
    return trans._connection_for_bind(engine, execution_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 2, in _connection_for_bind
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
    ret_value = fn(self, *arg, **kw)
                ^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/session.py", line 1191, in _connection_for_bind
    conn = bind.connect()
           ^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 3295, in connect
    return self._connection_cls(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
    Connection._handle_dbapi_exception_noconnection(
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 2450, in _handle_dbapi_exception_noconnection
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 144, in __init__
    self._dbapi_connection = engine.raw_connection()
                             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 3319, in raw_connection
    return self.pool.connect()
           ^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 448, in connect
    return _ConnectionFairy._checkout(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 1272, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 712, in checkout
    rec = pool._do_get()
          ^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/impl.py", line 178, in _do_get
    with util.safe_reraise():
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/impl.py", line 176, in _do_get
    return self._create_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 389, in _create_connection
    return _ConnectionRecord(self)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 674, in __init__
    self.__connect()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 900, in __connect
    with util.safe_reraise():
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 896, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/create.py", line 667, in connect
    return dialect.connect(*cargs_tup, **cparams)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/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 "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 372, in __init__
    self.connect()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 702, in connect
    self._request_authentication()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 1000, in _request_authentication
    auth_packet = self._read_packet()
                  ^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 803, in _read_packet
    packet.raise_for_error()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/err.py", line 154, in raise_mysql_exception
    raise errorclass(errno, errval, sqlstate=sqlstate)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1044, "Access denied for user 'spargovx_time_tracker'@'localhost' to database 'spargovx_time_tracker_007'")
(Background on this error at: https://sqlalche.me/e/20/e3q8)
[2026-06-29 11:00:01,658] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 144, in __init__
    self._dbapi_connection = engine.raw_connection()
                             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 3319, in raw_connection
    return self.pool.connect()
           ^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 448, in connect
    return _ConnectionFairy._checkout(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 1272, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 712, in checkout
    rec = pool._do_get()
          ^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/impl.py", line 178, in _do_get
    with util.safe_reraise():
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/impl.py", line 176, in _do_get
    return self._create_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 389, in _create_connection
    return _ConnectionRecord(self)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 674, in __init__
    self.__connect()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 900, in __connect
    with util.safe_reraise():
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 896, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/create.py", line 667, in connect
    return dialect.connect(*cargs_tup, **cparams)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/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 "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 372, in __init__
    self.connect()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 702, in connect
    self._request_authentication()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 1000, in _request_authentication
    auth_packet = self._read_packet()
                  ^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 803, in _read_packet
    packet.raise_for_error()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/err.py", line 154, in raise_mysql_exception
    raise errorclass(errno, errval, sqlstate=sqlstate)
pymysql.err.OperationalError: (1044, "Access denied for user 'spargovx_time_tracker'@'localhost' to database 'spargovx_time_tracker_007'")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/flask/app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/flask/app.py", line 919, in full_dispatch_request
    rv = self.handle_user_exception(e)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/flask/app.py", line 917, in full_dispatch_request
    rv = self.dispatch_request()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/flask/app.py", line 902, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/setup.sparknest.com.au/app/routes.py", line 270, in index
    buildings = Building.query.filter_by(status=True).all()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/query.py", line 2711, in all
    return self._iter().all()  # type: ignore
           ^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/query.py", line 2864, in _iter
    result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
                                                  ^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/session.py", line 2373, in execute
    return self._execute_internal(
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/session.py", line 2261, in _execute_internal
    conn = self._connection_for_bind(bind)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/session.py", line 2113, in _connection_for_bind
    return trans._connection_for_bind(engine, execution_options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<string>", line 2, in _connection_for_bind
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/state_changes.py", line 137, in _go
    ret_value = fn(self, *arg, **kw)
                ^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/orm/session.py", line 1191, in _connection_for_bind
    conn = bind.connect()
           ^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 3295, in connect
    return self._connection_cls(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 146, in __init__
    Connection._handle_dbapi_exception_noconnection(
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 2450, in _handle_dbapi_exception_noconnection
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 144, in __init__
    self._dbapi_connection = engine.raw_connection()
                             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/base.py", line 3319, in raw_connection
    return self.pool.connect()
           ^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 448, in connect
    return _ConnectionFairy._checkout(self)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 1272, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 712, in checkout
    rec = pool._do_get()
          ^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/impl.py", line 178, in _do_get
    with util.safe_reraise():
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/impl.py", line 176, in _do_get
    return self._create_connection()
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 389, in _create_connection
    return _ConnectionRecord(self)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 674, in __init__
    self.__connect()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 900, in __connect
    with util.safe_reraise():
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/util/langhelpers.py", line 122, in __exit__
    raise exc_value.with_traceback(exc_tb)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/pool/base.py", line 896, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/site-packages/sqlalchemy/engine/create.py", line 667, in connect
    return dialect.connect(*cargs_tup, **cparams)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib64/python3.11/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 "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 372, in __init__
    self.connect()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 702, in connect
    self._request_authentication()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 1000, in _request_authentication
    auth_packet = self._read_packet()
                  ^^^^^^^^^^^^^^^^^^^
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/connections.py", line 803, in _read_packet
    packet.raise_for_error()
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/protocol.py", line 219, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/home/spargovx/virtualenv/setup.sparknest.com.au/3.11/lib/python3.11/site-packages/pymysql/err.py", line 154, in raise_mysql_exception
    raise errorclass(errno, errval, sqlstate=sqlstate)
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1044, "Access denied for user 'spargovx_time_tracker'@'localhost' to database 'spargovx_time_tracker_007'")
(Background on this error at: https://sqlalche.me/e/20/e3q8)
