Dify版本升级过程记录(1.9.0升级至1.11.1版本,含weaviate数据迁移)

一、dify从1.9.1升级至1.11.1

1、FitCS仓库中拉取最新的dify镜像,(具体配套镜像版本需要查看对应版本difydocker-compose.yaml 文件明细)

docker pull anggenius/dify-api-local:1.11.1.0
docker pull langgenius/dify-plugin-daemon:0.5.1-local

docker pull langgenius/dify-web-local:1.11.1.0

docker pull busboy:latest

docker pull semitechnologies/weaviate:1.27.0

docker pull langgenius/dify-sandbox:0.2.12 #无需重复拉取

docker pull postgres:15-alpine  #无需重复拉取

docker pull redis:6-alpine   #无需重复拉取    

docker pull squid:latest    #无需重复拉取

docker pull nginx:latest     #无需重复拉取

2、拉取git tag1.11.1分支代码

3、拷贝.env文件

cd dify/docker

cp .env.example .env

4、修改环境变量(需要参考之前运行的.env文件)

CONSOLE_API_URL=https://di******me.com

CONSOLE_WEB_URL=https://

di******me.com

SERVICE_API_URL=https://

di******me.com

TRIGGER_URL=https://

di******me.com

APP_API_URL=https://

di******me.com

APP_WEB_URL=https://

di******me.com

FILES_URL=https://

di******me.com

INTERNAL_FILES_URL=https://

di******me.com

 #

修改允许上传文件大小

UPLOAD_FILE_SIZE_LIMIT=150

UPLOAD_FILE_BATCH_LIMIT=10

PLUGIN_S3_USE_AWS_MANAGED_IAM=false

PLUGIN_S3_ENDPOINT=false

PLUGIN_S3_USE_PATH_STYLE=false

PLUGIN_PYTHON_ENV_INIT_TIMEOUT=640

PLUGIN_MAX_EXECUTION_TIMEOUT=2400

# 重要

PIP_MIRROR_URL=https://mi********om/pypi/simple


修改HTTP节点最大文本长度(20M

HTTP_REQUEST_NODE_MAX_BINARY_SIZE=20971520

HTTP_REQUEST_NODE_MAX_TEXT_SIZE=20971520

#代码节点最大返回字符串长度

CODE_MAX_STRING_LENGTH=9223372036854775808

CODE_GENERATION_MAX_TOKENS=10240

CODE_MAX_STRING_ARRAY_LENGTH=300

CODE_MAX_OBJECT_ARRAY_LENGTH=300

修改代码执行时间

SANDBOX_WORKER_TIMEOUT=300

CODE_EXECUTION_CONNECT_TIMEOUT=300

CODE_EXECUTION_READ_TIMEOUT=300

CODE_EXECUTION_WRITE_TIMEOUT=300

 #

新增两个参数修改项

MARKETPLACE_ENABLE=false

FORCE_VERIFYING_SIGNATURE=false

5、执行docke-composer停止命令

docker-compose   down

6、将原docker/volumes内容进行备份(可以不备份plugin目录,假定当前dify位于~/dify目录下,很花时间)

cd ~/dify/docker

tar -cvf volumes_1122.tgz volumes

优先备份:volumes/certbotvolumes/dbvolumes/weaviate

7、【重要!!!】修改docker/volumes目录用户权限,否则1.11.1版本中会因为权限问题,导致文件无法正常上传。


chown -R 1001:1001   vloumes/app/storage


chmod -R u+rwX   vloumes/app/storage


8、执行启动命令

docker-compose up -d

9、执行docke-compose 日志查看指令,查看是否存在异常(多个容器的日志一起刷新)

docker-compose   logs -f –tail 100

二、weaviate向量数据库迁移

当前状态为已从1.9.0升级至1.11.1,发现历史知识库无法检索,报错现象如下:

Dify版本升级过程记录(1.9.0升级至1.11.1版本,含weaviate数据迁移)

根据官方指导文档进行修复即可(链接地址:https://docs.dify.ai/zh/self-host/troubleshooting/weaviate-v4-migration)。

这里对本地迁移步骤进行记录(这里是已经升级到1.11.1,只能进行选择修复路径,摊手)

1、停用weaviate

切换到docker目录,执行

docker-compose stop weaviate

2、【重要】修复孤立的LSM数据(直接拷贝执行即可)

容器内执行

docker-compose run –rm –entrypoint   /bin/sh weaviate -c "

cd /var/lib/weaviate

for dir in vector_index_*_node_*_lsm; do

  [   -d "$dir" ] || continue

   index_id=$(echo "$dir" | sed -n   's/vector_index_([^_]*_[^_]*_[^_]*_[^_]*_[^_]*)_node_.*/1/p')

   shard_id=$(echo "$dir" | sed -n   's/.*_node_([^_]*)_lsm/1/p')

   mkdir -p "vector_index_${index_id}_node/$shard_id/lsm"

   cp -a "$dir/"*   "vector_index_${index_id}_node/$shard_id/lsm/"

   echo " Copied   $dir"

done

"

3、重启weaviate容器

docker-compose start weaviate

4、列出集合(非必要,需要进入api容器内执行):

curl -s -H "Authorization:Bearer WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih"

   "http://weaviate:8080/v1/schema" | python3 -c "

import sys, json

for cls in   json.load(sys.stdin).get('classes', []):

     if cls['class'].startswith('Vector_index_'):

         print(cls['class'])

"

5、确认对象技术非零(非必要)

curl -s -H "Authorization: Bearer   WVF5YThaHlkYwhGUSmCRgsX3tD5ngdN8pkih"

"http://weaviate:8080/v1/objects?class=Vector_index_bc3251c1_8e8b_4adc_a66f_69bccb086f2e_Node"

说明:其中class为上一个指令的返回结果,使用官方给的python脚本得到的数据总是0,但是curl命令实际有数据返回的。因为只是个确认的过程,不影响迁移效果,直接忽略吧。

6、【重要】进行Shema迁移

因为按照官方路线B在worker容器内执行一直报连接失败。这里选择单独在本地创建虚拟环境进行迁移,

6.1 修改docker-compose.yaml文件暴露weaviate808050051端口

Weaviate

ports:

 – “50051:50051”

 – “8080:8080”

6.2 停用并启用weaviate,并检查50051端口是否在本地监听

docker-compose down weaviate

docker-compose up weaviate -d

netstat -tuln | grep 50051

6.3 创建本地虚拟环境(要求是python3.11+

python -m venv weaviate_migration_env

source   weaviate_migration_env/bin/activate

pip install weaviate-client requests

6.4 修改migrate_weaviate_collections.py,将访问地址weaviate改为127.0.0.1,如下:

WEAVIATE_ENDPOINT =   os.getenv("WEAVIATE_ENDPOINT", "http://127.0.0.1:8080")

WEAVIATE_GRPC_ENDPOINT =   os.getenv("WEAVIATE_GRPC_ENDPOINT", "grpc://127.0.0.1:50051")

migrate_weaviate_collections.py 源文件地址:

https://github.com/langgenius/dify-docs/blob/main/assets/migrate_weaviate_collections.py

6.5 执行迁移脚本

python migrate_weaviate_collections.py

执行成功后,结束位置展示如下内容:

Replacing old collection with migrated   data…

   Step 1: Deleting old collection…

     Deleted

   Step 2: Getting schema from migrated collection…

   Step 3: Creating collection with original name…

     Created

   Step 4: Copying data to original collection name…

     Copied 1000 objects…

     Copied 1014 objects…

     Total copied: 1014 objects

   Step 5: Cleaning up temporary migrated collection…

     Cleaned up

SUCCESS! Vector_index_bc3251c1_8e8b_4adc_a66f_69bccb086f2e_Node now   has the new schema with 1014 objects

================================================================================

Migration Complete!

================================================================================

Summary:

   Collections migrated: 3

7、登录dify,针对历史知识库进行文档检索测试,发现知识库可用,说明数据迁移成功

Dify版本升级过程记录(1.9.0升级至1.11.1版本,含weaviate数据迁移)

前沿技术大模型技术新闻资讯

懂方言,通诗词,精通30国语言,阿里发布语音识别大模型Fun-ASR1.5

2026-4-20 4:54:34

前沿技术大模型技术新闻资讯

🤯 终于搞懂了!LLM、RAG 和 AI Agents 到底是什么关系?

2026-4-20 6:00:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索