安装 arangodb foxx 应用程序失败

Posted

技术标签:

【中文标题】安装 arangodb foxx 应用程序失败【英文标题】:mount is failing for arangodb foxx application 【发布时间】:2014-11-23 04:21:20 【问题描述】:

我为我正在开发的应用程序创建了一个 foxx 应用程序。我试图在 arangodb 主线中安装 foxx 应用程序。 我已按照以下步骤操作: 1. 从 arangosh 'db._createDatabase("databasename")' 创建新数据库 2.运行命令'foxx-manager --server.database ""获取目录' 3.然后运行命令'foxx-manager --server.database "" mount'

但是,当我查看日志时,它给出了以下错误

2014-11-23T04:08:44Z [2584] 错误无法计算 Foxx 应用程序路由:[ArangoError 1924:未找到图表] 2014-11-23T04:08:44Z [2584] 错误无法挂载 Foxx 应用程序“app:contactspace:1.0”:错误:无法计算 Foxx 应用程序“app:contactspace:1.0”的路由表,请检查日志文件是否有错误! \n 在 Object.exports.appRoutes (/usr/share/arangodb/js/server/modules/org/arangodb/foxx/manager.js:1525:15)\n 在 Object.reloadRouting (/usr/share/arangodb/ js/server/modules/org/arangodb/actions.js:1241:38)\n 在全局上下文方法:1:33\n

我无法理解此错误的原因。安装脚本在挂载后运行良好,但挂载本身出错。

在 arangodb 开发实例的情况下,foxx 应用程序运行良好。

来自here的其他信息:

是的,我正在创建一个只有一个边定义的通用图。下面是那个的 setup.js

// load modules
var graph_module = require("org/arangodb/general-graph");

// create graph if does not already exists
var graph = null;
if(!graph_module._exists("sampleGraph")) 
    var containsXRelation = graph_module._directedRelation("containsX", ["X"], ["X"]);
    var edgeDefinitions = graph_module._edgeDefinitions(containsXRelation);
    graph = graph_module._create("sampleGraph", edgeDefinitions);

else 
    graph = graph_module._graph("sampleGraph");

他们还有一些东西,比如创建索引...

此外,我在控制器操作之外还有一些与图形相关的代码:

var sampleGraph = graph_module._graph("sampleGraph");
var vertex = contactSpaceGraph._getVertexCollectionByName("contactX");
var edge = contactSpaceGraph._getEdgeCollectionByName("X");

【问题讨论】:

【参考方案1】:

你正在做的就是我也会做的,那里有一些小错误会导致错误:

您在控制器中编写了 contactX 而不是 containsX 您在控制器中切换了顶点集合和边集合的名称(getVertexCollectionByName 应该接收 X,getEdgeCollectionByName 应该接收 containsX)

如果你改变了这些东西,你很高兴:) 刚刚在本地尝试过。

一个小小的说明: 在 Foxx 中,这个想法是每个集合名称都以一些有关安装点的信息为前缀。这样做的原因是您应该能够多次安装 Foxx 应用程序而不会发生冲突——而且多个应用程序可能有一个集合“x”,并期望在其中存储不同的东西。这就是为什么我们有 applicationContext.collectionName :) 我建议在您命名与图形相关的集合时也使用它!如果您想了解它是如何工作的,我将您的 sn-ps 转换为一个简单的示例应用程序。这是它的要点:

https://gist.github.com/moonglum/21208befa3ce6227559d

【讨论】:

以上是关于安装 arangodb foxx 应用程序失败的主要内容,如果未能解决你的问题,请参考以下文章

ArangoDB:Foxx服务中的交易限制

融合RocksDB, Pregel, Foxx & Satellite Collections 怎样使数据库性能提升35%?

ArangoDB 中的正文参数

融合RocksDB, Pregel, Fault-Tolerent Foxx & Satellite Collections 怎样使数据库性能提升35%?

Spring Arangodb 存储边缘但因 MappingException 失败:找不到类型类 java.lang.Object 的 PersistentEntity

向 ArangoDB 发送请求的正确/安全方式是啥?