Database 在Couchbase中交换存储桶

Database 在Couchbase中交换存储桶,database,sdk,couchbase,n1ql,Database,Sdk,Couchbase,N1ql,在表交换之后,我喜欢在Couchbase的服务器存储桶中执行相同的操作 例如,给定的桶: foo和foo\u new 我想把名字换成: foo_old和foo MySQL等效命令是:将表foo重命名为foo_-old,将foo_-new重命名为foo 此外,我喜欢通过JavaSDK而不是手动进行更改 我发现它声明不可能更改bucket名称 在新版本中可能吗?到目前为止,我还没有找到能够做到这一点的方法。没有用于重命名存储桶的N1QL命令。也没有计划。由于您无法从UI更改bucket的名称,因此可

在表交换之后,我喜欢在Couchbase的服务器存储桶中执行相同的操作

例如,给定的桶:

foo
foo\u new

我想把名字换成:

foo_old
foo

MySQL
等效命令是:
将表foo重命名为foo_-old,将foo_-new重命名为foo

此外,我喜欢通过JavaSDK而不是手动进行更改

我发现它声明不可能更改bucket名称


在新版本中可能吗?到目前为止,我还没有找到能够做到这一点的方法。

没有用于重命名存储桶的N1QL命令。也没有计划。由于您无法从UI更改bucket的名称,因此可以肯定地说,也没有用于更改的API

您必须使用一个API命令来创建一个新bucket,使用一组N1QL命令在新bucket上创建新索引,然后将所有文档从旧bucket复制到新bucket,可能需要使用INSERT-SELECT


除非您使用非常小的存储桶(可能是出于测试目的),否则我不推荐这种方法。

您知道它是否因为某些业务逻辑而不受支持吗?我不知道为什么不支持重命名存储桶。我认为我们可以很容易地支持它,但需求从来都不够大。在某个时候,一个足够大的客户会向我们索要,我们会建造它。