这是一个非常危险的操作,使用客户端的 reset() 函数实现:
client.reset() # 删掉所有集合和数据这个操作要求服务端开了 allow_reset,默认关闭。如果没有开启 allow_reset,调用 reset() 会得到如下错误:
ChromaError: Resetting is not allowed by this configuration...打开 reset 的方式:
# 方式一:配置文件(推荐)
echo "allow_reset: true" > config.yaml
docker run --name chroma159 -v ./config.yaml:/config.yaml -v ./chroma-data:/chroma -p 8000:8000 chromadb/chroma:1.5.9
# 方式二:环境变量
CHROMA_ALLOW_RESET=true
注意,生产环境别开,很危险。
再次运行下面代码,就可以正常清除了:
import chromadb
# 上文用到的定义,直接搬过来,保证这段能独立跑
client = chromadb.HttpClient(
host="localhost", port=8000,
tenant="tenant_a", database="prod",
)
print(client.reset()) # True如果服务器没有开启 reset 功能,直接在 Settings 对象中将 reset 设置为 True,依然要报错:
import chromadb
from chromadb import Settings
settings = Settings(
allow_reset = True
)
# 上文用到的定义,直接搬过来,保证这段能独立跑
client = chromadb.HttpClient(
host="localhost", port=8000,
tenant="tenant_a", database="prod",
settings=settings
)
print(client.reset())
# chromadb.errors.ChromaError: Reset is disabled by config