Oleksandr H
Oleksandr H

Reputation: 3015

How to flush Couchbase bucket from Java code?

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

Answers (5)

dnault
dnault

Reputation: 8889

With Couchbase Java SDK 3.x:

try (Cluster cluster = Cluster.connect(connectionString, username, password)) {
    cluster.buckets().flushBucket(bucketName);
}

Upvotes: 1

Radek Busz
Radek Busz

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

Simon Baslé
Simon Baslé

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

NoSQLKnowHow
NoSQLKnowHow

Reputation: 4845

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

Upvotes: 0

FuzzyAmi
FuzzyAmi

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

Related Questions