我没有看到用于重命名CouchDB数据库的API,或者在Futon中也没有这样做的选项。
除了复制到另一个数据库,然后删除原始数据库,有没有一步重命名数据库的方法?
发布于 2012-07-22 06:01:46
除了Dominic和PPPaul所说的..。
重命名文件绝对是可行的(请确保将其重命名为相同的用户,而不是意外地将所有权更改为root
或其他名称)。
是的,在完全运行的生产环境中这样做是完全安全的。HTTP/REST API的众多优点之一是,没有适配器具有到DB的有状态连接。每个请求都是一个新请求。因此,基本上,重命名完成后对CouchDB的第一个请求将能够使用新名称。
但是等等,还有更多!
一件非常酷的事情是,即使在重命名之后,CouchDB服务器仍然有一个打开的文件句柄指向文件本身(不受重命名inode的影响),因此在CouchDB服务器实际重新启动之前,您仍然可以使用旧名称访问数据库。
更新
ATfPT在评论中的精彩观察,显然DB名称需要以小写字母开头,否则它不会出现在Futon中。
更新
我记得的另一件事是:要找出DB文件的位置,请运行以下命令:couch-config --db-dir
发布于 2012-07-21 22:50:10
如果您有权访问数据库文件本身(位于/var/lib/couchdb
中,取决于您的安装),则只需将其重命名即可。
据我所知,这将有效地“重命名”数据库。当您执行此操作时,我会确保服务器没有运行,以防万一。
发布于 2017-10-11 00:02:43
我正在使用couchdb 2,我假设前面的答案是针对旧版本的,因为数据库文件没有列在/var/lib/couchdb文件夹中,该文件夹是使用'couch-config --db-dir‘命令找到的。
我遵循的最简单的方法是使用futon并将您想要重命名的数据库复制为新的所需名称,然后删除旧数据库。
https://stackoverflow.com/questions/11589186
复制相似问题