一、需求
从0.14.2升级到0.15.3,要求模型供应商,创建的应用数据等等,不能丢失。
二、安装0.14.2
下载dify代码cd /optgit clone https://github.com/langgenius/dify.gitcd dify/
切换到tag 0.14.2git checkout 0.14.2git pull origin 0.14.2
运行difycd dockercp .env.example .envdocker compose up -d
三、创建相关数据
登录dify,设置密码
查看版本
添加模型供应商,添加几个不同类型的应用
四、升级0.15.3
备份docker-composecd /opt/difycd dockercp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
下载0.15.3代码cd ../git checkout 0.15.3git pull origin 0.15.3
关闭服务cd dockerdocker compose down
备份数据tar -cvf volumes-$(date +%s).tgz volumes
升级服务docker compose up -d
五、迁移数据
清理表workflowruns
在迁移数据之前,首先查看一下postgresql里面dify数据库中的表workflowruns
主要是,详细记录了工作流的执行情况,包括执行时间、状态、结果等信息。
这个表运行一段时间后,数据会非常大。业务量很大的情况下,会达到几百GB。
执行poetry run flask db upgrade,可能会对表workflowruns增加字段,那么执行时间会长达3小时以上。
为了避免数据库卡死,请在迁移数据之前,先清理表记录,保留最近1个月即可。
正式迁移数据
进入容器docker-api-1docker exec -it docker-api-1 /bin/bash
更新Python依赖关系cd apipoetry install
输出:
Installing dependencies from lock file
No dependencies to install or update
运行迁移脚本poetry run flask db upgrade
输出:
INFO [alembic.runtime.migration] Context impl PostgresqlImpl.
INFO [alembic.runtime.migration] Will assume transactional DDL.
退出容器exit
重启difycd /opt/dify/dockerdocker compose downdocker compose up -d
五、验证dify
登录dify,查看版本
查看应用,是否有丢失
测试运行应用
运行没问题,说明升级成功了