2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Difyのバージョンアップ

Last updated at Posted at 2025-05-15

はじめに

クラウド環境にてDifyをバージョンアップした際の作業内容を記載しています。
当初、Difyをアンインストールせずにバージョンアップを試みたところ、GUIの確認時に「Internal Server Error」が表示され、正常に起動しませんでした。
Difyの設定内容が未定義であったため、Helmを使用してアンインストールとインストールを行う方法を採用しています。
既に設定している場合は他の方法やバックアップ取得を推奨します。

注意:アップグレードの前にデータベースのバックアップを行ってください。アップグレードが失敗した場合、迅速にバージョンをロールバックしてデータベースを復元することができます。

ツール

使用しているツールは以下です。
HelmはKubernetes上でのアプリケーション管理を支援するツールで、Difyはその上で動作するアプリケーションの一つです。

Kubernetes (K8s)は、デプロイやスケーリングを自動化したり、コンテナ化されたアプリケーションを管理したりするための、オープンソースのシステムです。

  • Dify

DifyはオープンソースのLLMアプリ開発プラットフォームです。RAGエンジンを使用して、エージェントから複雑なAIワークフローまでLLMアプリを編成します。

  • Helm

Helm は、Kubernetes アプリケーションの管理を支援します。

バージョンアップ

  1. values.yaml取得
    以下のコマンドで現在のDifyの設定をローカル環境にダウンロードします。
    こちら設定ファイル(values.yaml)を使用して、後続の手順で新しいバージョンへ変更する設定を行います。

    $ helm get values dify -a -o yaml > values.yaml
    
  2. アンインストール
    以下のコマンドを実行し、Difyをアンインストールします。
    release "dify" uninstalledが表示されると完了です。
    参考:helm公式サイト アンインストール

    $ helm uninstall dify
    release "dify" uninstalled
    
  3. デプロイ
    以下を参考にデプロイしています。
    参考:Upgrade

    • values.yamlの編集
      上記「1.values.yaml取得」でローカル環境にダウンロードしたファイルを編集します。
      ファイル内の「global:」>「images:」>「tags:」にバージョンを記載します。
      以下では今回適用する「1.1.3」を指定しています。
    global:
        image:
            tag: 1.1.3
    
    • インストール
      Helmコマンドを使用して新しいバージョンをインストールします。
      以下のコマンドは、Difyがインストールされていない場合は新たにインストールされます。インストールされている場合は、指定されたvalues.yamlファイルに基づいてアップグレードされます。
    $ helm upgrade --install dify douban/dify -f values.yaml
    Release "dify" does not exist. Installing it now.
    
    • 内容の反映
      以下のコマンドを実行するにより、アプリケーションが新しいバージョンのデータ構造に適応し、正常に動作する準備が整います。
      「INFO [alembic.runtime.migration] 」が100行程表示されて終了します。
    $ kubectl exec -it dify-pod-name -- flask db upgrade
    INFO  [alembic.runtime.migration] Context impl PostgresqlImpl.
    INFO  [alembic.runtime.migration] Will assume transactional DDL.
    INFO  [alembic.runtime.migration] Running upgrade ...
    .
    .
    .
    
  4. 確認

    • Podの起動確認
      以下コマンドを実行し、出力のNAMEが「dify-」で始まるものは全て起動していることを確認します。
      数分でREADY1/1STATUSRunningになりました。
      ※kubectlコマンドのネームスペースは <namespace> に置き換えています。
      NAMEは一部マスキングしています。
    $  kubectl -n <namespace> get pod
    NAME                                    READY   STATUS              RESTARTS      AGE
    dify-api-****************               1/1     Running             1 (38s ago)   68s
    dify-frontend-****************          1/1     Running             0             68s
    dify-minio-****************             1/1     Running             0             68s
    dify-plugin-daemon-************         1/1     Running             0             68s
    dify-postgresql-0                       1/1     Running             0             68s
    dify-redis-master-0                     1/1     Running             0             68s
    dify-sandbox-****************           1/1     Running             0             68s
    dify-worker-****************            1/1     Running             1 (45s ago)   68s
    .
    .
    .
    
    • DifyのGUI確認
      初回登録、ログイン後にトップページ右上のアカウントを押下します。
      「Difyについて」の右側に今回指定したバージョン「1.1.3」が表示されていることを確認しました。
      ※ メールアドレス等はマスキングしています。
      dify_login.png
      以上でDifyのバージョンアップが完了しました。

おわりに

今後Difyの整備を進める中でバージョン変更が必要になった場合は、アンインストールを行わずにアップグレードする方法の調査が求められます。その際、関連するアプリケーションとの互換性を確認し、アップグレード前に適切なバックアップの取得対象を検討することも重要になると考えます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?