如何删除Dgraph数据库?Docker部署下的数据与Schema操作咨询
Dgraph Docker部署的数据清理方案
嘿,咱们来一步步解决你用官方Docker镜像运行Dgraph时遇到的数据清理问题:
1. 如何完全删除Dgraph数据库?
Dgraph的所有数据(包括Schema、节点、边和底层存储文件)默认存在容器的/dgraph目录下,如果你挂载了本地卷或Docker命名卷,数据会存在对应的外部存储里。要彻底删除整个数据库,按以下步骤操作:
- 先停止运行中的Dgraph容器:
docker stop <你的Dgraph容器名/容器ID> - 如果没有挂载外部数据卷:直接删除容器就能清除所有数据,因为数据都存在容器内部:
docker rm <你的Dgraph容器名/容器ID> - 如果挂载了本地目录作为数据卷(比如启动命令里有
-v ./dgraph-data:/dgraph):除了删除容器,还要清空本地挂载的目录:rm -rf ./dgraph-data/* - 如果用的是Docker命名卷:删除对应的卷即可彻底清除数据:
docker volume rm <你的Dgraph数据卷名称>
2. 只删数据保留Schema,或同时删除数据与Schema?
完全不用删除镜像重建!Dgraph本身提供了API和命令行工具来做精准清理:
- 仅删除所有数据,保留Schema:
可以通过HTTP API发送请求,直接清除所有节点和边,但保留已定义的Schema结构:
(注意替换curl -X POST localhost:8080/alter -d '{"drop_all": false, "drop_data": true}'localhost:8080为你的Dgraph Alpha节点的实际地址) - 同时删除数据和Schema:
要是想彻底清空一切,回到初始状态,用这个HTTP API请求:
或者进入容器内部执行命令:curl -X POST localhost:8080/alter -d '{"drop_all": true}'docker exec -it <你的Dgraph容器名/容器ID> /bin/bash dgraph alter --drop_all
执行完这些操作后,你的Dgraph实例就会回到对应的状态,不需要重启容器(当然重启也没问题),完全不用折腾镜像重建那一套~
内容的提问来源于stack exchange,提问作者Errol Hassall
相关产品推荐
相关产品推荐

