我没有看到用于重命名CouchDB数据库的API,或者在Futon中没有看到用于执行相同操作的选项。
如果没有复制到另一个数据库然后删除原始数据库,是否有重命名数据库的一步方法?
答案 0 :(得分:27)
添加Dominic和PPPaul所说的......
重命名文件绝对是可行的方法(确保将其重命名为同一用户,而不是意外地将所有权更改为root
或其他内容。)
在完全运行的生产环境中这是绝对安全的,是的。 HTTP / REST API的许多优点之一是没有适配器与DB的状态连接。每个请求都是一个新请求。因此,重命名完成后,第一次向CouchDB发出的请求将能够使用新名称。
但等等,还有更多!
一个非常酷的事情是,即使在重命名之后,CouchDB服务器仍然具有文件本身的开放文件句柄(不受重命名inode的影响),所以在CouchDB服务器实际重启之前你'我仍然可以使用旧名称访问数据库。
ATfPT在评论中进行了很好的观察,显然DB名称需要以小写字母开头,否则它不会出现在Futon中。
我记得的另一件事:找出数据库文件的位置,运行:couch-config --db-dir
答案 1 :(得分:9)
如果您可以访问数据库文件本身(位于/var/lib/couchdb
,具体取决于您的安装),您只需重命名即可。
据我所知,这将有效地“重命名”数据库。我会确保在执行此操作时服务器没有运行,以防万一。
答案 2 :(得分:5)
我正在使用couchdb 2,我假设之前的答案是旧版本的,因为数据库文件没有列在使用'couch-config --db-dir'命令找到的/ var / lib / couchdb文件夹中。< / p>
我所遵循的最简单的方法是使用蒲团并将要重命名的数据库复制到新的所需名称,然后删除旧数据库。
答案 3 :(得分:0)
假设您不想损坏数据库,请在CouchDB 运行时重命名.couch文件。