删除和重新创建的 ArangoDB 数据库保留集合
Dropped and Recreated ArangoDB Databases Retain Collections
部署脚本创建和配置数据库、集合等。该脚本包含在开始之前删除数据库的代码,以便测试它们可以正常进行。删除数据库并重新添加后:
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 并在删除和添加之间重新启动数据库,但这并没有解决问题。
有没有办法彻底删除并重新添加数据库?
调用 db._dropDatabase()
时应删除集合。
但是,如果您 运行 db._dropDatabase('mydb');
直接跟在 db._createDatabase('mydb');
之后,然后通过 db._collections()
检索集合列表,这将显示当前数据库中的集合(这可能是_system
数据库,如果你能够 运行 命令)?
这意味着您可能一直在查看 _system
数据库中的集合,除非您通过 db._useDatabase(name);
更改数据库。这解释了吗?
ArangoDB 存储 managed graphs 的附加信息;
因此,在使用命名图时,您应该使用the graph management functions删除图以确保系统中没有任何内容:
var graph_module = require("org/arangodb/general-graph");
graph_module._drop("social", true);
管理界面中图形查看器的当前实现将您的视图首选项(如应该成为图形标签的属性)存储在浏览器的本地存储中,因此这些功能无法实现。
部署脚本创建和配置数据库、集合等。该脚本包含在开始之前删除数据库的代码,以便测试它们可以正常进行。删除数据库并重新添加后:
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 并在删除和添加之间重新启动数据库,但这并没有解决问题。
有没有办法彻底删除并重新添加数据库?
调用 db._dropDatabase()
时应删除集合。
但是,如果您 运行 db._dropDatabase('mydb');
直接跟在 db._createDatabase('mydb');
之后,然后通过 db._collections()
检索集合列表,这将显示当前数据库中的集合(这可能是_system
数据库,如果你能够 运行 命令)?
这意味着您可能一直在查看 _system
数据库中的集合,除非您通过 db._useDatabase(name);
更改数据库。这解释了吗?
ArangoDB 存储 managed graphs 的附加信息;
因此,在使用命名图时,您应该使用the graph management functions删除图以确保系统中没有任何内容:
var graph_module = require("org/arangodb/general-graph");
graph_module._drop("social", true);
管理界面中图形查看器的当前实现将您的视图首选项(如应该成为图形标签的属性)存储在浏览器的本地存储中,因此这些功能无法实现。