如何在Couchbase Sync Gateway中刷新存储桶

时间:2017-12-10 22:32:16

标签: couchbase couchbase-sync-gateway

Couchbase服务器有一种方法可以删除名为doFlush的存储桶中的所有存储数据。它通过以下命令调用:

POST /pools/default/buckets/[bucket-name]/controller/doFlush

当我尝试使用Sync Gateway API调用此函数时,它会返回以下错误:

{'error': 'not_found', 'reason': 'unknown URL'}

Sync Gateway确实可以使用delete a bucket,但该操作只会从配置文件中删除存储桶。它实际上并不删除与之关联的记录。有没有办法刷新同步网关,或作为后备删除存储的数据?

1 个答案:

答案 0 :(得分:1)

首先,请了解Sync Gateway中的数据库和Couchbase Server中的 Bucket 是不同的。

Sync Gateway无法刷新存储桶,因为它是存在存储桶的Couchbase Server之外的独立实体,并且它没有刷新甚至删除存储桶的特权。 Sync Gateway中的数据库仅表示创建的对象,该对象引用了Couchbase Server中的存储桶。

doFlush不适用于Sync Gateway,因为它属于Couchbase Server API,而不属于Sync Gateway API。

在Sync Gateway版本1. *中,由于与同步相关的元数据与数据一起存储在主存储桶或“影子”存储桶中,因此刷新两者将删除与同步相关的数据。现在,由于与同步相关的元数据存储在XAttrs中,因此刷新存储桶不会删除XAttrs,从而导致后续更改。