aran3 opened a new issue, #29693:
URL: https://github.com/apache/airflow/issues/29693

   ### Apache Airflow version
   
   2.5.1
   
   ### What happened
   
   When running a dry-run of a downgrade from airflow 2.5.1 to 1.10.15, the 
operation ends with an AttributeError raised, accessing `MockConnection.close`. 
   
   This seems related to what is explain in 
https://github.com/sqlalchemy/alembic/issues/740 - the migration does a 
reflection operation. 
   
   Command that was executed: 
   `airflow db downgrade --to-revision 03afc6b6f902 --show-sql-only`
   
   Log end:
   ```text
   2023-02-22T12:10:27.375Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py",
 line 128, in _init_engine
   2023-02-22T12:10:27.375Z     engine.connect().close()
   2023-02-22T12:10:27.375Z AttributeError: 'MockConnection' object has no 
attribute 'close'
   ```
   
   
   <details><summary>Full log details</summary>
   <p>
   
   ```text
   2023-02-22T12:10:19.196Z Generating sql for downgrade -- downgrade commands 
will *not* be submitted.
   2023-02-22T12:10:19.196Z [~[34m2023-02-22 07:10:19,195~[0m] 
{~[34mdb.py:~[0m1649} INFO~[0m - Attempting downgrade to revision 
03afc6b6f902~[0m
   2023-02-22T12:10:19.219Z [~[34m2023-02-22 07:10:19,219~[0m] 
{~[34mdb.py:~[0m1654} WARNING~[0m - Generating sql scripts for manual 
migration.~[0m
   2023-02-22T12:10:19.226Z [~[34m2023-02-22 07:10:19,225~[0m] 
{~[34mmigration.py:~[0m205} INFO~[0m - Context impl PostgresqlImpl.~[0m
   2023-02-22T12:10:19.226Z [~[34m2023-02-22 07:10:19,226~[0m] 
{~[34mmigration.py:~[0m208} INFO~[0m - Will assume transactional DDL.~[0m
   2023-02-22T12:10:21.134Z BEGIN;
   2023-02-22T12:10:21.134Z 
   2023-02-22T12:10:21.356Z -- Running downgrade 290244fb8b83 -> 1986afd32c1b
   ...
   2023-02-22T12:10:27.359Z 
   2023-02-22T12:10:27.359Z -- Running downgrade bef4f3d11e8b -> e1a11ece99cc
   2023-02-22T12:10:27.359Z 
   2023-02-22T12:10:27.374Z Traceback (most recent call last):
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/bin/../dependencies/.bin/airflow",
 line 8, in <module>
   2023-02-22T12:10:27.374Z     sys.exit(main())
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/__main__.py",
 line 39, in main
   2023-02-22T12:10:27.374Z     args.func(args)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/cli/cli_parser.py",
 line 52, in command
   2023-02-22T12:10:27.374Z     return func(*args, **kwargs)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/utils/cli.py",
 line 108, in wrapper
   2023-02-22T12:10:27.374Z     return f(*args, **kwargs)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/cli/commands/db_command.py",
 line 134, in downgrade
   2023-02-22T12:10:27.374Z     db.downgrade(to_revision=to_revision, 
from_revision=from_revision, show_sql_only=args.show_sql_only)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/utils/session.py",
 line 75, in wrapper
   2023-02-22T12:10:27.374Z     return func(*args, session=session, **kwargs)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/utils/db.py",
 line 1658, in downgrade
   2023-02-22T12:10:27.374Z     _offline_migration(command.downgrade, 
config=config, revision=revision_range)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/utils/db.py",
 line 1447, in _offline_migration
   2023-02-22T12:10:27.374Z     migration_func(config, revision, sql=True)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/alembic/command.py",
 line 424, in downgrade
   2023-02-22T12:10:27.374Z     script.run_env()
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/alembic/script/base.py",
 line 569, in run_env
   2023-02-22T12:10:27.374Z     util.load_python_file(self.dir, "env.py")
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/alembic/util/pyfiles.py",
 line 94, in load_python_file
   2023-02-22T12:10:27.374Z     module = load_module_py(module_id, path)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/alembic/util/pyfiles.py",
 line 110, in load_module_py
   2023-02-22T12:10:27.374Z     spec.loader.exec_module(module)  # type: ignore
   2023-02-22T12:10:27.374Z   File "<frozen importlib._bootstrap_external>", 
line 883, in exec_module
   2023-02-22T12:10:27.374Z   File "<frozen importlib._bootstrap>", line 241, 
in _call_with_frames_removed
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/migrations/env.py",
 line 115, in <module>
   2023-02-22T12:10:27.374Z     run_migrations_offline()
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/migrations/env.py",
 line 84, in run_migrations_offline
   2023-02-22T12:10:27.374Z     context.run_migrations()
   2023-02-22T12:10:27.374Z   File "<string>", line 8, in run_migrations
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/alembic/runtime/environment.py",
 line 867, in run_migrations
   2023-02-22T12:10:27.374Z     self.get_context().run_migrations(**kw)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/alembic/runtime/migration.py",
 line 624, in run_migrations
   2023-02-22T12:10:27.374Z     step.migration_fn(**kw)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/airflow/migrations/versions/0068_2_0_0_drop_kuberesourceversion_and_.py",
 line 58, in downgrade
   2023-02-22T12:10:27.374Z     inspector = inspect(conn)
   2023-02-22T12:10:27.374Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/sqlalchemy/inspection.py",
 line 64, in inspect
   2023-02-22T12:10:27.374Z     ret = reg(subject)
   2023-02-22T12:10:27.375Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py",
 line 178, in _connectable_insp
   2023-02-22T12:10:27.375Z     return 
Inspector._construct(Inspector._init_legacy, bind)
   2023-02-22T12:10:27.375Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py",
 line 117, in _construct
   2023-02-22T12:10:27.375Z     init(self, bind)
   2023-02-22T12:10:27.375Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py",
 line 124, in _init_legacy
   2023-02-22T12:10:27.375Z     self._init_engine(bind)
   2023-02-22T12:10:27.375Z   File 
"/bb/bin/package/b/btca-airflow-venv/0.9.0+devise/libexec/btca-airflow-venv/python/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py",
 line 128, in _init_engine
   2023-02-22T12:10:27.375Z     engine.connect().close()
   2023-02-22T12:10:27.375Z AttributeError: 'MockConnection' object has no 
attribute 'close'
   ```
   </p>
   </details>
   
   As the error occurs while running dowgrade from `bef4f3d11e8b -> 
e1a11ece99cc`, the next migration steps are not printed. 
   
   ### What you think should happen instead
   
   I am aware the `db downgrade` is not supported to downgrade to older airflow 
versions officially, but as the only reason this fails is the "close" access on 
the member, maybe this error can be caught and ignored. 
   
   ### How to reproduce
   
   Upgrade from older airflow to 2.5.1 (probably any 2.X that supports the `db 
downgrade` command, as the failure is related to a revision in 2.0.0), then run 
   `airflow db downgrade --to-revision 03afc6b6f902 --show-sql-only`
   
   ### Operating System
   
   Red Hat Enterprise Linux Server 7.9
   
   ### Versions of Apache Airflow Providers
   
   _No response_
   
   ### Deployment
   
   Virtualenv installation
   
   ### Deployment details
   
   PostgreSql DB
   Virtual environment created from constraint file for 2.5.1, python3.10
   
   ### Anything else
   
   _No response_
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to