rjgoyln opened a new pull request, #73220: URL: https://github.com/apache/airflow/pull/73220
## Summary Revision `02ca36b0235b` guards its MySQL DDL with throwaway stored procedures, each handed to a single `op.execute()` as one multi-statement string. `mysqlclient` enables `CLIENT_MULTI_STATEMENTS` and accepts that; `pymysql` does not, so the server rejects the script at its second statement and `airflow db migrate` fails. MySQL DDL is not transactional, so the revision is left unstamped over a partly-changed schema. Under the Helm chart the post-upgrade hook reports only `timed out waiting for the condition`. ## Change - MySQL drops of the `ab_register_user.email` unique constraint, and of named constraints and indexes on downgrade, now check the live schema and issue one plain statement each - the stored procedures remain for offline (`--sql`) runs, which have no connection to inspect - a regression test runs the revision up and back down over a `mysql+pymysql` connection, the driver CI never exercises Introspection answers the same existence questions the procedures encode, and is what this revision already does for indexes and foreign-key names. Every step that can land before the failure stays behind an existence check, so re-running over a partly-migrated database converges. closes: #73218 --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Opus 5) Generated-by: Claude Code (Opus 5) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- 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]
