早上好。
我们已经在我们的Ubuntu (18.04)服务器上运行couchdb相当一段时间了,没有问题。不幸的是,IT部门最近执行了许多更新,这些更新扰乱了服务器上的许多事情。我们已经成功地恢复并运行了其中的大部分,但是我们仍然在与couchdb进行斗争。
我们的Python烧瓶网站没有加载,错误日志显示它无法访问couchdb。经过调查,我们意识到couchdb被从服务器上完全删除了。
我们重新安装了couchdb,但是安装的版本是version 3,根据安装过程中得到的提示,我们在/var/lib/couchdb中的文件用于版本1,他们建议使用复制器工具将它们升级到版本3。
我们一直试图通过跟踪本指南和这一个来做到这一点,但没有成功。我可能错了,因为我不是couchdb专家,但问题似乎是,这些教程告诉我们如何从已经运行的couchdb复制数据库,而这一点我们没有时间(只有新安装的版本中没有数据库)。
目前,Python烧瓶能够连接到couchdb (新安装的一个),但是找不到任何数据库,当尝试使用couchdb命令手动访问数据库时,只会提示我们:
{"error":"not_found","reason":"Database does not exist."}我们备份了couchdb文件,它们看起来像一堆具有.couch扩展名的文件。它们还在/var/lib/couchdb中。
问题是,如何使这些.couch文件与我们新安装的couchdb版本一起工作?
提前感谢任何能帮忙的人。
发布于 2021-03-03 11:17:33
我终于做到了,这就是我的方法:
我在虚拟机上安装了一个较旧版本的Ubuntu服务器(我使用了VirtualBox),并安装了CouchDB1.6。我使用.couch手动将FileZilla文件添加到/var/lib/couchdb中。我测试了一切都很好,而且确实如此。
之后,我将CouchDB1.6升级到CouchDB2.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!结果是CouchDB2.x数据库在couchdb 3中工作得很好,所以不需要其他任何东西。我将复制的数据库上传到我部署的服务器上,它马上就能工作了。
信息:请注意,使用couchdb 1,您创建的每个数据库都显示为一个文件。(例如db1.沙发、db2.沙发等),但是对于couchdb 2和3,它们都位于文件_dbs.couch中(您可能希望传输/var/lib/couchdb中的碎片、_users.couch和其他文件,以确保一切正常工作)。
信息2:默认情况下,couchup实用程序只安装在couchdb 2中,如果直接跳转到couchdb 3,就不会使用它。然而,couchup只是一个python脚本,我相信可以从这个github页面下载它,所以您甚至可能不需要安装couchdb 2(我还没有这样做,所以没有保证)。
https://stackoverflow.com/questions/66399237
复制相似问题