Dify向量数据库迁移至Milvus实战指南
创作时间:
作者:
@小白创作中心
Dify向量数据库迁移至Milvus实战指南
引用
CSDN
1.
https://blog.csdn.net/u013743338/article/details/141806378
本文记录了Dify(版本0.7.2)向量数据库从Weaviate迁移到Milvus的过程,详细描述了环境配置、命令执行以及遇到的问题和解决方案。对于使用Dify并计划进行数据库迁移的用户具有重要参考价值。
一、备份
在进行任何迁移操作之前,首先需要备份当前的数据库内容。使用以下命令对挂载目录进行备份:
tar -cvf volumes-$(date +%s).tgz volumes
二、修改环境变量
找到dify/docker/.env
文件,修改其中的VETOR_STORE
值为milvus
(默认为weaviate
)。同时,建议同步修改compose-config.yml
中的Milvus版本,并添加Milvus可视化管理工具Attu。完整的配置如下:
milvus-standalone:
container_name: milvus-standalone
image: milvusdb/milvus:v2.3.1
profiles:
- milvus
command: [ "milvus", "run", "standalone" ]
environment:
ETCD_ENDPOINTS: ${ETCD_ENDPOINTS:-etcd:2379}
MINIO_ADDRESS: ${MINIO_ADDRESS:-minio:9000}
common.security.authorizationEnabled: ${MILVUS_AUTHORIZATION_ENABLED:-true}
volumes:
- ./volumes/milvus/milvus:/var/lib/milvus
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:9091/healthz" ]
interval: 30s
start_period: 90s
timeout: 20s
retries: 3
ports:
- "19530:19530" # Milvus gRPC port
- "9091:9091" # Milvus HTTP port
depends_on:
- "etcd"
- "minio"
networks:
- milvus
三、重启服务
执行以下命令重启Dify服务:
docker-compose down
docker-compose up -d
重启后,检查Milvus相关容器是否正常启动:
四、执行迁移命令
尝试执行数据库迁移命令:
docker exec -it docker-api-1 flask vdb-migrate
如果遇到连接失败的错误,可能是由于端口未开放。需要在compose-config.yml
中确保Milvus的端口已正确映出:
ports:
- "19530:19530" # Milvus gRPC port
- "9091:9091" # Milvus HTTP port
五、最终解决方案
经过多次尝试,发现需要在API服务的环境变量中添加Milvus的连接信息:
api:
image: langgenius/dify-api:0.7.2
restart: always
environment:
# Use the shared environment variables.
<<: *shared-api-worker-env
# Startup mode, 'api' starts the API server.
MODE: api
MILVUS_HOST: milvus-standalone # Milvus服务的容器名称
MILVUS_PORT: 19530 # Milvus服务的端口
depends_on:
- db
- redis
volumes:
# Mount the storage directory to the container, for storing user files.
- ./volumes/app/storage:/app/api/storage
networks:
- ssrf_proxy_network
- default
同时,也需要在Worker和Web服务中添加相同的环境变量:
worker:
image: langgenius/dify-api:0.7.2
restart: always
environment:
# Use the shared environment variables.
<<: *shared-api-worker-env
# Startup mode, 'worker' starts the Celery worker for processing the queue.
MODE: worker
MILVUS_HOST: milvus-standalone # Milvus服务的容器名称
MILVUS_PORT: 19530 # Milvus服务的端口
depends_on:
- db
- redis
volumes:
# Mount the storage directory to the container, for storing user files.
- ./volumes/app/storage:/app/api/storage
networks:
- ssrf_proxy_network
- default
web:
image: langgenius/dify-web:0.7.2
restart: always
environment:
CONSOLE_API_URL: ${CONSOLE_API_URL:-}
APP_API_URL: ${APP_API_URL:-}
SENTRY_DSN: ${WEB_SENTRY_DSN:-}
NEXT_TELEMETRY_DISABLED: ${NEXT_TELEMETRY_DISABLED:-0}
MILVUS_HOST: milvus-standalone # Milvus服务的容器名称
MILVUS_PORT: 19530 # Milvus服务的端口
六、Attu配置
如果需要使用Attu进行可视化管理,可以在compose-config.yml
中添加以下配置:
attu:
container_name: attu
profiles:
- milvus
image: zilliz/attu:v2.4.7
environment:
MILVUS_URL: milvus-standalone:19530
ports:
- "18000:3000"
depends_on:
- "milvus-standalone"
networks:
- milvus
参考资料
热门推荐
大S拍卖豪车竟是为了赡养费?!
从《彷徨之刃》到《狂人日记》:文学中的"凌虐"主题及其社会意义
博士生连续5年主持央视春晚,多次主持央视晚会,绽放耀眼光芒
故宫的历史变迁:从明到清的秘密
压力管理:湿疹治疗中不可或缺的一环
广州秋冬换季,如何预防干性湿疹?
鲑鱼:干性湿疹患者的理想食材
你的肾精够用吗?这些信号别忽视!
游记:琅琊山——醉翁之意不在酒,在乎山水之间也!
哈尔滨文化公园&圣索菲亚大教堂:历史与现代交融的魅力
中国半导体行业市场现状与发展前景
从乌镇到杭州东站:这些打卡点你不能错过!
乌镇西栅水灯会:新年必打卡!
乌镇戏剧节后,如何快速返回杭州东站?
南京瞻园:六百年园林的古今交融
在大集里,感受山东文化脉动
夏季高温用电安全指南:这些用电安全知识要牢记
朱元璋与明故宫:一座宫殿的诞生与辉煌
探访明故宫:揭秘600年皇家秘史
北京故宫的建筑之美:如何保护这份世界遗产?
长乐到福州北站地铁通勤全攻略:线路、时间和优惠信息详解
《使命召唤14:二战》中的诺曼底登陆装备揭秘
《使命召唤14:二战》收藏品大揭秘:纳粹匕首和神秘指南针!
福建福州旅游景点推荐,最值得打卡的26个福州旅游景点!这篇太全啦!
洹水之滨的殷墟博物馆新馆预约攻略
何镜堂院士操刀:殷墟博物馆新馆设计揭秘
国庆节后A股走势深度分析
火星上的真挚友谊,《贝肯熊之火星任务》温暖上映!
乌镇峰会期间驾车必看!最新交规解读
新疆旅游攻略:北疆喀纳斯