Airflow 2 から Airflow 3 へのアップグレード対応

はじめに

現在利用している環境下に Airflow 2.11.0 を使用しているサーバーがあります。
Airflow のサポート期限が 2026/4/22 のため、 バージョンを 3.0.6 にアップグレードを行う必要が出てきました。
ローカル環境で VSCode と DockerDesktop で検証を行った手順を記載いたします。

 

準備

  1. まずは、Airflow 2.11 の環境を構築します。
    ※VSCode や DockerDescktop などの設定は済んでいるものとします。
  2. Airflow の公式サイトから、Airflow 2.11.0 の docker-compose.yaml をダウンロードし、任意のフォルダに保存します。
    (今回は docker-compose-2.11.0.yamlの名前で保存しました)
  3. 保存したフォルダを VSCode で開き、docker-compose-2.11.0.yaml  を実行します。
  4. VScode では必要なファイルをダウンロードしたことが確認でき、DockerDesktop ではコンテナが起動したことを確認できます。
    airflow-webserver-1 の Port(s) にある 8080:8080 をクリックするとWEB UI の画面が開きます。ログインすると、サンプルDAGを確認することができます。
  5. 以上で準備は完了です。コンテナを停止させてから次へ進みます。

 

Airflow 3 のアップグレード失敗(悪い例)

※この手順を行ってしまうと中途半端にアップグレード処理が行われてしまうため復旧が手間になりますので行わない方がよいです。

  1. 同じようにAirflow の公式サイトから、Airflow の最新(3.0.6) の docker-compose.yaml をダウンロードし、先程と同じフォルダに保存します。
    (今回は docker-compose-3.0.6.yamlの名前で保存しました)
  2. VSCode から、docker-compose-3.0.6.yaml  を実行します。
  3. エラーになります。

 

Airflow 3 のアップグレード手順

  1. Airflow 3 へのアップグレード手順は公式サイトにきちんと記載されていますが、今回は最低限の手当のみを行います。
    ※コンテナを起動している場合は停止します。
  2. 同じようにAirflow の公式サイトから、Airflow の最新(3.0.6) の docker-compose.yaml をダウンロードし、先程と同じフォルダに保存します。
    (今回は docker-compose-3.0.6.yamlの名前で保存しました)
  3. DB のマイグレーションを行う必要があるため、DB と radis を起動します。
    コマンドプロンプトから以下で起動します。

    docker compose -f docker-compose-3.0.6.yaml up -d postgres radis
  4. 以下のように airflow-cli を使用して DB のマイグレーションを実行します。
    docker compose -f docker-compose-3.0.6.yaml run --rm airflow-cli airflow db migrate
  5. マイグレーションが成功したことを確認します。
  6. 起動した DB を以下のコマンドで終了させ、Airflowをもう一度実行します。
    docker compose -f docker-compose-3.0.6.yaml run --rm airflow-cli airflow db migrate
  7. airflow-apiserver-1 の Port(s) にある 8080:8080 をクリックするとWEB UI の画面が開きます。ログインすると、サンプルDAGを確認することができます。
    ※Airflow 3 からは webserver が apiserver に変わります。
  8. 以上でアップグレードは完了です。

 

おわりに

如何でしたでしょうか。

Airflow 2.x から 3.0 へのアップグレードは、上記のように DB のマイグレーションを行うことで実施ができます。

DAG によってはAirflow 3 で廃止になった機能を使用しているために修正が必要なことや、Airflow の Public API の認証方法が変わったことによる対応なども必要になってくるかもしれません。

こちらはいつか機会がありましたら記載できればと思います。

簡単ではありますが、本記事が誰かの助けになれば幸いです。

 

おまけ

今回はサンプルを使用したため DB は postgres を使用しています。
MySQL を使用している場合は、DB のユーザーに ALTER 権限がないためマイグレーションに失敗するケースがあります。
上記の場合は、DB のユーザーに ALTER 権限を付与するか、root ユーザーなどを使用してマイグレーションを実行してください。

 

--------------------------
開発支援・技術研修のご要望・ご相談はこちらから
--------------------------
【この技術ブログを読んだエンジニアの皆様へ】
カサレアルブログをお読みいただき、ありがとうございます!

私たちは、常に新しい技術に挑戦し、ユーザーのニーズに応えるサービスを提供しています。
もし、当社の技術への情熱や、会社・チーム・社員の雰囲気に共感いただけたなら、
ぜひ私たちと一緒に働きませんか?
現在、株式会社カサレアルでは事業拡大に伴い、新たな仲間となるエンジニアを積極的に募集しています。

少しでも興味をお持ちいただけましたら、まずは弊社のことを知っていただけると嬉しいです。
▼採用サイト
https://www.casareal.co.jp/recruit/career
▼社員インタビュー
https://hrmos.co/pages/casareal/jobs/0000016
▼エンジニアの仲間になる! エントリーはこちらから
https://hrmos.co/pages/casareal/jobs

皆様のエントリーを心よりお待ちしています!

コードが詩になるとき――「計算する詩/Computational Poetry」を訪れて
NW実務ほぼ未経験からCCNA資格を取得した話(試験対策紹介その2)

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

コメント ※

名前 ※

メール ※

サイト