我觉得我在ArangoDB升级过程中做错了。升级的最终结果是我的数据库存在,我的用户存在,我的集合存在,但我的集合中没有文档。显然这是一个问题。我有两次出现此问题,从2.3.1升级 - > 2.3.4和2.3.4 - > 2.4在Windows中。我在两种情况下都使用了相同的程序:
升级输出对我来说似乎是正确的,它会找到旧的数据库并对它们进行升级,这可以从它们存在的事实以及集合中看出来。但如前所述,收藏品都是空的。值得庆幸的是,这是在开发环境中,但我担心升级我的生产环境。我做错了还是这个错误?
答案 0 :(得分:1)
我尝试使用x64 Arango软件包重现步骤2.3.5到2.4.1
我做了什么:
首先,从shell中运行arangod,在程序目录之外使用自己的数据库目录:
bin\arangod.exe c:\ee --console
创建一个集合,插入数据(如js / server / tests / aql-optimizer-rule-use-index-for-sort.js setUp() - 函数确实) 然后安装新版本,运行
bin\arangod.exe c:\ee --upgrade
然后
bin\arangod.exe c:\ee --console
AQL_EXECUTE("for u in UnitTestsAqlOptimizeruse_index_for_sort_XX return u")
这给了我收集的所有100份文件。
接下来,我尝试使用 Porgram Files 文件夹中的var \ lib文件夹运行arangod服务。我使用arangosh连接,再次将文档插入到集合中,并使用
进行验证db._query("for u in UnitTestsAqlOptimizeruse_index_for_sort_XX return u").toArray();
所有数据都存在。
然后停止服务,安装2.4.1,停止服务,并使用资源管理器复制 ArangoDB 2.4.1 \ var \ lib 目录,运行 arangod --upgrade 成功重启服务,并使用arangosh成功重新验证集合及其文档。
因此,这看起来与您所做的类似,您是否可以尝试使用最少的数据集重现这一点并将var \ lib目录发送给我们?
答案 1 :(得分:0)
事实证明问题与复制有关。我会复制生产数据库中的数据,以便在开发期间使用。然后当我在dev db上升级或停止Arango服务时,所有文件都会消失。但是,当我使用arango备份和还原来复制生产数据库数据时,一切都按预期工作。 Arango的最新版本应该已经解决了这个问题,但我还没有时间去测试它。