[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,
} }
err = cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{ shouldCreateBucket := false
BucketSettings: settings, // check if bucket exists
ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber, _, err = cluster.Buckets().GetBucket(bucketName, nil)
}, nil) if err != nil {
bucket := cluster.Bucket(bucketName) // bucket not found
if err != nil && !errors.Is(err, gocb.ErrBucketExists) { shouldCreateBucket = true
return bucket, err
} }
if shouldCreateBucket {
err = cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{
BucketSettings: settings,
ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber,
}, nil)
if err != nil && !errors.Is(err, gocb.ErrBucketExists) {
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) {