删除和重新创建的ArangoDB数据库保留集合

时间:2016-01-22 01:13:25

标签: arangodb

部署脚本创建和配置数据库,集合等。该脚本包括在开始之前删除数据库的代码,因此测试它们可以正常进行。删除数据库并重新添加后:

var graphmodule = require("org/arangodb/general-graph");
var graphList = graphmodule._list();
var dbList = db._listDatabases();

for (var j = 0; j < dbList.length; j++) {
   if (dbList[j] == 'myapp')
       db._dropDatabase('myapp');
}

db._createDatabase('myapp');
db._useDatabase('myapp');

db._create('appcoll'); // Collection already exists error occurs here

之前添加到mydb的集合仍保留在mydb中,但它们都是空的。这对我的特定用例来说不是一个问题,因为这些集合是空的,我原本计划重建它们,但是我更喜欢有一个干净的测试版本,这种行为看起来很奇怪。

我尝试关闭shell并在drop和add之间重新启动数据库,但这并没有解决问题。

有没有办法干净地删除并重新添加数据库?

2 个答案:

答案 0 :(得分:1)

调用db._dropDatabase()时应删除集合。 但是,如果直接运行db._dropDatabase('mydb');后跟db._createDatabase('mydb');,然后通过db._collections()检索集合列表,则会显示当前数据库中的集合(可能是_system数据库,如果你能够运行命令)?。

这意味着您可能一直在查看_system数据库中的集合,除非您通过db._useDatabase(name);更改数据库。这解释了吗?

答案 1 :(得分:0)

ArangoDB存储-w switch;

的其他信息

因此,在使用命名图表时,您应该使用managed graphs删除图表,以便在系统中保留任何内容:

{{1}}

管理界面中图形查看器的当前实现将您的视图首选项(例如应该成为图形标签的属性)存储在浏览器本地存储中,因此这些功能无法实现。