database - ArangoDB升级丢失数据

标签 database collections upgrade documents arangodb

我觉得我在 ArangoDB 升级过程中做错了什么。升级的最终结果是我的数据库存在,我的用户存在,我的集合存在,但我的集合中没有文档。显然这是一个问题。我遇到过两次此问题,在 Windows 中从 2.3.1 -> 2.3.4 和 2.3.4 -> 2.4 升级。我在这两种情况下都使用了相同的程序:

  1. 停止了 ArangoDB 服务
  2. 从 Program Files 备份我的 ArangoDB 目录
  3. 安装新版ArangoDB
  4. 将数据库文件夹的内容从旧的ArangoDB目录复制到新目录,不包括系统数据库(我觉得这是我出错的地方......)
  5. 然后我打开 bin 目录的命令提示符并运行 arangod --upgrade

升级输出对我来说似乎是正确的,它找到旧数据库并升级它们,它们与集合一起存在的事实证明了这一点。但是如前所述,这些集合都是空的。值得庆幸的是,这是在开发环境中,但我担心升级我的生产环境。我做错了什么还是这是一个错误?

最佳答案

我尝试使用 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()-function 那样) 然后安装新版本,运行

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 个文件,我将它们放入了收藏。

接下来,我尝试运行 arangod 服务,其中的 var\lib 文件夹位于 Porgram Files 文件夹中。我使用 arangosh 连接,再次将文档插入集合,用

验证
db._query("for u in UnitTestsAqlOptimizeruse_index_for_sort_XX return u").toArray();

所有数据都在那里。

然后停止服务,安装2.4.1,停止服务,用explorer拷贝过来ArangoDB 2.4.1\var\lib目录,运行arangod --upgrade 成功重启服务,并使用 arangosh 再次成功地重新验证集合及其文档。

因此,由于这看起来与您所做的相似,您能否尝试使用最少的数据集重现它并将您的 var\lib 目录发送给我们?

关于database - ArangoDB升级丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28069892/

相关文章:

android - 通过 Intent 传递数据或在需要时查询数据库更好吗?

database - 如何查看带有阿拉伯字符的 Paradox 数据库文件?

mysql - 如果不存在插入表mysql问题

在 Ubuntu 14.04.4 LTS 上使用 apt-get 将 Docker 从 v1.11 升级到 v1.12

javascript - 如何按 "Trending"对搜索结果进行排序?

java - ConcurrentSkipListSet 什么时候有用?

scala - 使用 foldleft 或其他运算符来计算点距离?

java - 集合接口(interface)与数组

ruby-on-rails-4 - 将 Rails 项目从 4.1.9 更新到 4.2.0 后,Ruby on Rails Rake 抛出 "Incorrect table name"错误

CalendarWidget 在 Plone 4.2.4 + PloneFormGen 上损坏