Skip to content

Commit cbe61bc

Browse files
committed
Fix decryption of trigger kwargs when downgrading. (#38743)
* Fix decryption of trigger kwargs when downgrading. This failed because the query for Triggers after the downgrade lazy loads the taskinstance table(ORM) which doesn't have the task_display_name column at that downloaded point. The fix was to query specifically on the encrypted_kwargs column. * Properly positon the decryption after downgrade and not in offline migration (cherry picked from commit 567246f)
1 parent 1fdfaf3 commit cbe61bc

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

airflow/utils/db.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -993,7 +993,7 @@ def decrypt_trigger_kwargs(*, session: Session) -> None:
993993
# this can happen when we downgrade to an old version before the Trigger table was added
994994
return
995995

996-
for trigger in session.query(Trigger):
996+
for trigger in session.scalars(select(Trigger.encrypted_kwargs)):
997997
# decrypt the string and convert it to serialized dict
998998
trigger.encrypted_kwargs = json.dumps(BaseSerialization.serialize(trigger.kwargs))
999999
session.commit()
@@ -1744,12 +1744,12 @@ def downgrade(*, to_revision, from_revision=None, show_sql_only=False, session:
17441744
else:
17451745
log.info("Applying downgrade migrations.")
17461746
command.downgrade(config, revision=to_revision, sql=show_sql_only)
1747-
if _revision_greater(
1748-
config,
1749-
_REVISION_HEADS_MAP["2.9.0"],
1750-
to_revision,
1751-
):
1752-
decrypt_trigger_kwargs(session=session)
1747+
if _revision_greater(
1748+
config,
1749+
_REVISION_HEADS_MAP["2.9.0"],
1750+
to_revision,
1751+
):
1752+
decrypt_trigger_kwargs(session=session)
17531753

17541754

17551755
def drop_airflow_models(connection):

0 commit comments

Comments
 (0)