6

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.

DaveR
  • 9,540
  • 3
  • 39
  • 58
Oleksandr H
  • 2,965
  • 10
  • 40
  • 58

5 Answers5

6

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 ;)

Simon Baslé
  • 27,105
  • 5
  • 69
  • 70
1

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.

Radek Busz
  • 313
  • 4
  • 12
0

You could use the REST API to delete the bucket: http://docs.couchbase.com/admin/admin/REST/rest-bucket-intro.html

FuzzyAmi
  • 7,543
  • 6
  • 45
  • 79
0

In the Couchbase Java 2.x SDK API Reference look at BucketFlusher.

NoSQLKnowHow
  • 4,449
  • 23
  • 35
0

With Couchbase Java SDK 3.x:

Cluster cluster = Cluster.connect(connectionString, username, password);
cluster.buckets().flushBucket(bucketName);
dnault
  • 8,340
  • 1
  • 34
  • 53