Couchdb 1.x 从我的服务器中删除,重新安装了 Couchdb 3.x,我如何让扩展名为 .couch 的旧文件与它一起使用?

Couchdb 1.x removed from my server, reinstalled Couchdb 3.x, how do I get my old files with the .couch extension to work with it?

早上好。

我们在 Ubuntu (18.04) 服务器上使用 运行 couchdb 已经有一段时间了,没有任何问题。不幸的是,IT 部门最近执行了一些更新,导致服务器上的很多东西变得混乱。我们已经设法恢复了其中的大部分内容 运行,但我们仍在为 couchdb 苦苦挣扎。

我们的 Python flask 网站没有加载,错误日志显示它无法访问 couchdb。经过调查,我们发现couchdb已经完全从服务器上移除了。

我们重新安装了couchdb,但是安装的版本是版本3,根据安装时的提示我们/var/lib/couchdb里面的文件是版本1的,他们推荐使用replicator工具将它们升级到版本 3。

我们一直在尝试通过关注 this guide and this one 来做到这一点,但没有成功。 我可能是错的,因为我不是 couchdb 专家,但看起来问题在于这些教程告诉我们如何从已经 运行 的 couchdb 复制数据库,我们暂时没有(只有没有数据库的新安装版本)。

目前,Python flask 能够连接到 couchdb(新安装的)但没有找到任何数据库,当尝试使用 couchdb 命令手动访问数据库时,我们只得到提示:

{"error":"not_found","reason":"Database does not exist."}

我们有 couchdb 文件的备份,它们看起来像是一堆扩展名为 .couch 的文件。他们还在 /var/lib/couchdb.

问题是,我们怎样才能使这些 .couch 文件与我们新安装的 couchdb 版本一起工作?

提前感谢任何可以提供帮助的人。

我终于成功了,结果是这样的:

我在虚拟机上安装了旧版本的 Ubuntu 服务器(我使用的是 VirtualBox)并安装了 couchdb 1.6。我使用 FileZilla 手动将我的 .couch 文件添加到 /var/lib/couchdb。我测试过一切正常,确实如此。

之后我将 couchdb 1.6 升级到 couchdb 2.3 并使用了 couchdb 2 附带的 couchup 工具(注意 couchdb 2 和 3 需要您设置管理员密码)。 This page 展示了如何使用它。 coupup 脚本位于 /opt/couchdb/bin.

我导航到此文件夹并 运行 以下内容:

$ python couchup list                                             # Shows your unmigrated 1.x databases
$ python couchup replicate -a --login admin --password password   # Replicates your 1.x DBs to 2.x
$ python couchup rebuild -a --login admin --password password     # Optional; starts rebuilding your views
$ python couchup delete -a --login admin --password password      # Deletes your 1.x DBs (careful!)
$ python couchup list                                             # Should show no remaining databases!

事实证明,couchdb 2.x 数据库与 couchdb 3 一起工作得很好,因此不需要任何其他东西。我将复制的数据库上传到我部署的服务器,它立即运行。

信息:请注意,对于 couchdb 1,您创建的每个数据库都显示为一个文件。 (例如 db1.couch、db2.couch 等),但是对于 couchdb 2 和 3,它们都位于文件 _dbs.couch 中(您可能希望 t运行sfer 分片, _users.couch 和 /var/lib/couchdb 中的其他文件以确保一切正常)。

信息 2:couchup 实用程序仅默认安装在 couchdb 2 中,如果您直接跳转到 couchdb 3 则不会安装它。但是,couchup 只是一个 python 脚本,我相信它可以从 this github page 下载它,所以你甚至可能不需要安装 couchdb 2(我没有尝试过这种方式,所以没有 gua运行tees)。