Reputation: 3015
I need to clear a Couchbase bucket each time before unit test runs. I use the Java SDK > 2.0 version. In previous versions I found this wonderful method http://www.couchbase.com/autodocs/couchbase-java-client-1.1.1/com/couchbase/client/ClusterManager.html#flushBucket(java.lang.String) but it does not exist in new version.
Is there some way to clear data from bucket? I could delete by fetching all keys of documents and then delete them all, but I want to use more pretty way.
Upvotes: 6
Views: 2547
Reputation: 8889
With Couchbase Java SDK 3.x:
try (Cluster cluster = Cluster.connect(connectionString, username, password)) {
cluster.buckets().flushBucket(bucketName);
}
Upvotes: 1
Reputation: 313
Mind that it might be risky to flush and use N1QL queries afterwards in Community v4.0. My integration tests were failing because some documents didn't get indexed after a few dozens of runs (even after 30 minutes). It's safer to just delete documents.
Upvotes: 1
Reputation: 28301
Actually in the 2.x SDK you can get a BucketManager
out of a Bucket
instance, which will allow you to call flush()
as wonderfully as before ;)
Upvotes: 6
Reputation: 4845
In the Couchbase Java 2.x SDK API Reference look at BucketFlusher.
Upvotes: 0
Reputation: 8119
You could use the REST API to delete the bucket: http://docs.couchbase.com/admin/admin/REST/rest-bucket-intro.html
Upvotes: 0