我没有看到用于重命名 CouchDB 数据库的 API,也没有看到 Futon 中的选项来做同样的事情。
除了复制到另一个数据库然后删除原始数据库之外,是否有一种重命名数据库的一步法?
我没有看到用于重命名 CouchDB 数据库的 API,也没有看到 Futon 中的选项来做同样的事情。
除了复制到另一个数据库然后删除原始数据库之外,是否有一种重命名数据库的一步法?
添加到多米尼克和 PPPaul 所说的......
重命名文件绝对是要走的路(确保将其重命名为同一用户,而不是意外更改所有权root
或其他内容)。
在完全运行的生产环境中这样做是完全安全的,是的。HTTP/REST API 的众多优点之一是没有与数据库有状态连接的适配器。每个请求都是一个新请求。所以基本上重命名完成后对 CouchDB 的第一个请求就可以使用新名称。
但是等等,还有更多!
一件非常酷的事情是,即使在重命名之后,CouchDB 服务器仍然有一个文件本身的打开文件句柄(这不受重命名 inode 的影响),所以在 CouchDB 服务器实际重新启动之前,你仍然会也可以使用旧名称访问数据库。
ATfPT在评论中的出色观察,显然 DB 名称需要以小写字母开头,否则它不会出现在 Futon 中。
Another thing I remembered: to find out where the DB files are, run this: couch-config --db-dir
如果您有权访问数据库文件本身(/var/lib/couchdb
取决于您的安装),您可以简单地重命名它。
据我所知,这将有效地“重命名”数据库。我会确保在您执行此操作时服务器没有运行,以防万一。
I am using couchdb 2, i assume the previous answers are for an older version because the database files are not listed in the /var/lib/couchdb folder found using 'couch-config --db-dir' command.
the simplest way i am following is to use futon and replicate the db you want to rename to a new desired name then delete the old database.
Assuming you don't want to corrupt your databases, rename the .couch files when CouchDB is not running.