ashb opened a new pull request, #54399:
URL: https://github.com/apache/airflow/pull/54399
* Allow downgrading to 2.11 from 3.x
There were two things blocking this:
1) The revision heads map didn't have any 2.11.x versions in it, so the
previous implementation of `_get_version_revision` was only looking within
the same <major.minor> pathc version.
We change it to rely on the fact that our pre-commit checks ensure this
map
is ordered, and iterate over the dictionary reversed, and when we find the
first thing less than the target revision we use that (direct equal is
handled already above)
2) The `ab_*` tables not existing were blocking the migration. Part of this
is
now fixable manually with #54227, but I have decided that since FAB was
required and the only option in 2.x, so I have decided to just create the
tables if they are missing
In order to try and cope with possible future changes I create the tables
at the latest version and then downgrade to the oldest known revision.
This is all handled in a `reset_to_2_x()` method on the FABDBManager, with
a fallback to just blindly create the tables from the ORM for versions of
the provider that don't yet have that function.
* Remove `downgrade` from the RunDBManager interface
This never made sense, and wasn't actually called as part of the `airflow db
downgrade` CLI calls.
The reason it doesn't make sense is that the version you pass is either the
Airflow version (but external DB managers are installed and versioned
separately) or the migration revision ID for the Airflow Core meta db.
For FAB specifically there is the `airflow fab-db` CLI command to manage
things, so "checking RunDBManager doesn't run Fab migrations" doesn't make
sense as a test now (as the code that _could_ do it is removed), so I've
removed the test too.
(cherry picked from commit 1d04f09762f9293b4e18a7689e43e3c28ae7d0db)
--
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]