Skip to content

Switch the default async MySQL driver to asyncmy - #75218

Merged
shahar1 merged 1 commit into
apache:mainfrom
Dev-iL:2610/asyncmy
Oct 26, 2026
Merged

shahar1 merged 1 commit into
apache:mainfrom
Dev-iL:2610/asyncmy

Conversation

@Dev-iL

@Dev-iL Dev-iL commented Oct 20, 2026

Copy link
Copy Markdown
Collaborator

related: #74555

Switch the default async MySQL metadata database driver from aiomysql to asyncmy. When [database] sql_alchemy_conn_async is unset and asyncmy is installed, core now derives a mysql+asyncmy:// URL. The MySQL provider installs asyncmy>=0.2.16 by default.

Follow the compatibility pattern from #69469 and #69690:

  • Core falls back to aiomysql when asyncmy is absent, so upgrading core with an older provider keeps working.
  • The provider retains aiomysql as a mandatory dependency because older supported cores always derive mysql+aiomysql:// URLs. Removing that requirement depends on the provider's minimum supported core version advancing.
  • Explicit async URLs remain unchanged. The new [aiomysql] extra lets deployments explicitly declare the legacy driver.

Update the database setup guide, provider documentation, newsfragment, and generated dependency metadata. Add coverage for driver selection, fallback, URL preservation, and asyncmy connection shutdown.

Local validation:

  • Python 3.14.7 / MySQL 8.0.46: settings, Execution API lifecycle, and MySQL hook tests — 159 passed, 3 skipped for other database backends.
  • Python 3.15.0 / MySQL 8.4.7: asyncmy source build and SQLAlchemy checks passed for Decimal, datetime, binary and Unicode values, rollback, cancellation, pool recovery, and disposal. This covers the driver, not the full Airflow suite. Python 3.15 currently requires a source build of asyncmy.
  • Regular static checks passed, including core mypy, Ruff, provider documentation generation, and lock consistency.

Runtime and static-suite results are from validation before the rebase. The tested source files are unchanged by the rebase; uv lock --check and git diff --check pass on the rebased branch.

Was generative AI tooling used to co-author this PR?
  • Yes (please specify the tool below)

Generated-by: Codex (GPT-6) following the guidelines


  • Read the Pull Request Guidelines for more information. Note: commit author/co-author name and email in commits become permanently public when merged.
  • For fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
  • When adding dependency, check compliance with the ASF 3rd Party License Policy.
  • For significant user-facing changes create newsfragment: {pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.

@Dev-iL
Dev-iL force-pushed the 2610/asyncmy branch 2 times, most recently from 7d3695d to 1458ef8 Compare October 21, 2026 02:57
@Dev-iL
Dev-iL marked this pull request as ready for review October 21, 2026 02:57
@Dev-iL
Dev-iL requested review from ashb, kaxil, shahar1 and vincbeck and removed request for ashb and kaxil October 21, 2026 06:19
@shahar1
shahar1 merged commit e4efc87 into apache:main Oct 26, 2026
97 checks passed
@Dev-iL
Dev-iL deleted the 2610/asyncmy branch October 26, 2026 21:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants