Difyのローカル環境でのupdate方法と注意点(v0.6.12以降)
2024.5.13 初稿
2024.6.30 v 0.6.12から環境変数が別ファイルに移ったのを機にリライト
2024.7.24 v 0.6.15のupdate確認
Difyは頻回にupdateが行われています。
updateする際に、今まで蓄えたデータが消えたらどうしよう、、ということはありませんか?
というか、updateがうまくいかないことは頻回にあるので、必ずupdateする前に念の為にDifyのファイルをコピーしておきましょう。
ちなみに、私は過去3回くらいupdateの際にうまくいかず、データが消えました。
Difyのファイルをコピーする
普通にフォルダを開いて、『コピー&ペースト』なり『複製』を必ずしておきましょう。
1, "dify" ファイル内で色々と作る
2, update情報が出たので、updateする前に複製して"dify copy"というファイルを作る
3, 下のupdate方法をそのまま"dify"のファイル内のdocker内で行う
4, "dify"で正常に動作するか、最版になっているかチェックする
→正常に動作すればそのまま使い続ける
エラーが出た場合
5, ”dify”ファイルを削除して、2で作成した"dify copy"の名前を"dify"へ戻す。
これで完全に元々と同じ動作をしてくれます。
6, DiscordやXで質問したり、現状の最新情報を取りにいく。解決するまでupdateは諦める。
とやれば安心です。
ファイル名が変わると少し面倒
上記の例でいうと"dify"ファイルのものを"dify copy"に複製していますが、"dify copy"をdeployした場合、再設定しないといけない変数が生じるため、面倒となるます。
変更不要なもの
コピーファイル上では、OpenAIのAPIなど、『tools→setting→model provider』のAPI情報はそのまま引き継がれます。
変更が必要なもの
『Knowledge』のAPI情報やIDを変更する必要があります。
そのため、『workflow』『chatflow』でHTTP requestでKnowledgeにデータを蓄積させている場合には、APIやdatabase_IDを変更する必要があります。
定期的にAppをymlファイルとして保存しておきましょう
せっかく作った『workflow』『chatflow』の情報が飛んだら困るので、ymlファイルとしてexportしておく手段もあります。
ただし、先ほどと同様で、Knowledgeのデータベースとしての情報や登録したAPIを全てやり直しになるので、めんどくさいことにはなります。。
Difyの最新版update方法
最新版がでたかどうかの情報はどうやって得るのか
Github上で下記をスターしておけば、最新情報がhome画面で出てきます
DiscordのDifyコミュニティーに参加する; https://discord.gg/X8r5WgWzJV
XでDify関連の人々をフォローする。公式Dify日本語; こちら
実際にupdateしてみる
docker compose.yamlファイルを変更していない場合はこちら
cd docker # dockerのディレクトリへ移動
git pull origin main # 最新版をgithubからダウンロードしてくる
docker compose down # difyが立ち上がっている場合は、一度シャットダウン
docker compose up -d # 再度立ち上げる
docker compose.yamlファイルを変更している場合はこちら
cd docker # dockerのディレクトリへ移動
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
git pull origin main # 最新版をgithubからダウンロードしてくる
docker compose down # difyが立ち上がっている場合は、一度シャットダウン
tar -cvf volumes-$(date +%s).tgz volumes
docker compose up -d # 再度立ち上げる
環境変数が変わっていないかチェック
v0.6.12以降は環境変数が.envファイルにあるので、基本的にはupdateに伴う変化はなくなりました。ですが、一応環境変数に異常がないかチェックしておきましょう。
.envファイルのおかげで、updateがかなりやりすくなりました。
まとめ
以上、Difyのupdate方法について紹介しました。
参考になれば幸いです。