文章
DIFY迁移指南(new)
Loading collection...
一、db数据备份
第一阶段:在【旧环境】导出绝对纯净的数据
请回到你的旧环境(C:\dify-main\docker),打开 PowerShell:
- 取消伪终端,在容器内部直接生成文件:
不要用
>导到外部了!直接让 PostgreSQL 在它自己的 Linux 肚子里生成文件:PowerShell
docker exec docker-db-postgres-1 sh -c "pg_dump -U postgres -F p -E UTF8 dify > /tmp/absolute_pure_backup.sql"(注意这里去掉了
-t,并且把 > 放到了双引号里面。)- 把纯净文件从旧容器里“捞”出来: 此时文件已经安全生成在容器内部。现在把它拷贝到你的 Windows 电脑上:PowerShell
docker cp docker-db-postgres-1:/tmp/absolute_pure_backup.sql C:\dify-main\docker\absolute_pure_backup.sql二、db数据还原
第二阶段:在【新环境】导入
拿到这个绝对没被 PowerShell 污染过的
absolute_pure_backup.sql 后,把它复制到你的新环境(E:\dify-main-new\docker) 目录下。
- 运行拉库:PowerShell
docker compose up -d(等 10 秒)
- 清理新环境(老规矩):PowerShell
docker compose down -v
docker compose up -d db_postgres(等 10 秒)
- 把文件“空投”进新容器:PowerShell
docker cp absolute_pure_backup.sql docker-db_postgres-1:/tmp/absolute_pure_backup.sql- 在容器内部执行导入:PowerShell
docker exec -i docker-db_postgres-1 psql -U postgres -d dify -f /tmp/absolute_pure_backup.sql- 拉起所有服务:PowerShell
docker compose up -d二、向量知识库数据还原
Dify 的所有心血(你的对话记录、配置好的 Prompt、上传的知识库文档、以及向量化后的数据)都默认保存在
dify/docker/volumes 这个文件夹里。
在down的条件下复制替换进去再运行up