早上好。
我们已经在 Ubuntu (18.04) 服务器上运行 couchdb 相当长一段时间了,没有任何问题。不幸的是,IT 部门最近执行了多次更新,导致服务器上的很多内容出现混乱。我们已经设法让大部分内容恢复并运行,但我们仍然在与 couchdb 作斗争。
我们的Python Flask网站无法加载,错误日志显示无法访问couchdb。经过调查,我们意识到 couchdb 已从服务器中完全删除。
我们重新安装了couchdb,但是安装的版本是版本3,根据安装过程中的提示,我们在/var/lib/couchdb中的文件是版本1,他们建议使用replicator工具将其升级到版本1版本 3.
我们一直在尝试遵循本指南和这个指南来做到这一点,但没有成功。 我可能是错的,因为我不是 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需要设置管理员密码)。 此页面展示了如何使用它。 couchup 脚本位于 /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 中(您可能想要传输分片、_users.couch 和 /var/lib 中的其他文件) /couchdb 以确保一切正常)。
INFO 2:couchup 实用程序默认仅与 couchdb 2 一起安装,如果直接跳到 couchdb 3,则不会拥有它。但是,couchup 只是一个 python 脚本,我相信可以从 this 下载它github页面,所以你可能甚至不需要安装couchdb 2(我没有尝试过这种方式,所以不能保证)。
需要你的帮助。
我正在尝试按照https://docs.huihoo.com/apache/couchdb/2.1/install/upgrading.html中的建议使用“couchup”实用程序将CouchDB 1.x迁移到2.x。但我不确定如何/在哪里运行以下命令。请提供将数据库从 1.x 迁移到 2.x 的分步指南。
谢谢你
$ couchup list # Shows your unmigrated 1.x databases
$ couchup replicate -a # Replicates your 1.x DBs to 2.x
$ couchup rebuild -a # Optional; starts rebuilding your views
$ couchup delete -a # Deletes your 1.x DBs (careful!)
$ couchup list # Should show no remaining databases!