[server] fix bucket creation for couchbase

Run create bucket query only if bucket is not found.
Required while running couchbase cloud version
This commit is contained in:
Lakhan Samani 2023-02-05 11:01:20 +05:30
parent 8212e81023
commit 4b26e1ce85

View File

@ -107,14 +107,23 @@ func CreateBucketAndScope(cluster *gocb.Cluster, bucketName string, scopeName st
FlushEnabled: true, FlushEnabled: true,
CompressionMode: gocb.CompressionModeActive, CompressionMode: gocb.CompressionModeActive,
} }
shouldCreateBucket := false
// check if bucket exists
_, err = cluster.Buckets().GetBucket(bucketName, nil)
if err != nil {
// bucket not found
shouldCreateBucket = true
}
if shouldCreateBucket {
err = cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{ err = cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{
BucketSettings: settings, BucketSettings: settings,
ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber, ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber,
}, nil) }, nil)
bucket := cluster.Bucket(bucketName)
if err != nil && !errors.Is(err, gocb.ErrBucketExists) { if err != nil && !errors.Is(err, gocb.ErrBucketExists) {
return bucket, err return nil, err
} }
}
bucket := cluster.Bucket(bucketName)
if scopeName != defaultScope { if scopeName != defaultScope {
err = bucket.Collections().CreateScope(scopeName, nil) err = bucket.Collections().CreateScope(scopeName, nil)
if err != nil && !errors.Is(err, gocb.ErrScopeExists) { if err != nil && !errors.Is(err, gocb.ErrScopeExists) {