2014-11-23 1 views
1

나는 작업중인 응용 프로그램에 대해 foxx 응용 프로그램을 만들었습니다. 나는 arangodb mainline에 foxx 앱을 설치하려고했습니다.
나는 다음과 같은 단계를 따라했습니다 :
1. "arangosh에서 'db._createDatabase ("databaseName을 ")'
2. 실행 명령 '폭스 - 관리자 --server.database을"새 데이터베이스를 만들 디렉토리를 가져 오기 08 : 나는 그것이 오류arangodb foxx 응용 프로그램에 대한 마운트가 실패했습니다.

2014-11-23T04에게 다음 주시는 로그를 보았을 때, '마운트 ""--server.database

을 폭스 매니저'를
3. 다음 명령을 실행 '그러나 : 44Z [2584] 오류 Foxx 응용 프로그램 경로를 계산할 수 없습니다 : [ArangoError 1924 : graph not 발견 : Foxx 응용 프로그램 'app : contactspace : 1.0'에 대한 라우팅 테이블을 계산할 수 없습니다 : 'app : contactspace : 1.0': Foxx 응용 프로그램을로드 할 수 없습니다. 오류 로그 파일! \ 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

이 오류의 원인을 이해할 수 없습니다. 설치 스크립트는 마운트 후 잘 실행되지만 마운트 자체가 오류를 발생시킵니다.

foxx 앱은 arangodb dev 인스턴스의 경우 잘 작동합니다. here에서

추가 정보 :

예 난 단지 하나의 가장자리 정의와 일반적인 그래프를 만드는 오전. 아래 내가 컨트롤러 액션 밖에서 그래프 관련 코드가 ... 또한

그들을 좀 더 물건 인덱스의 생성과 같은 그

// 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"); 
} 

에 대한 setup.js입니다 :

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

답변

3

무엇 당신이하고있는 일은 제가 한 일이기도합니다. 그곳에 약간의 오류가있어 오류가 발생합니다 :

  • 컨트롤러
  • 에서 대신 containsX의 OTE contactX 당신은 당신이 그 일을 변경하는 경우,

을 (getVertexCollectionByName는 X를 받아야한다, getEdgeCollectionByName이 containsX를 받아야한다) 컨트롤러에 정점 수집 및 가장자리 모음의 이름을 전환 좋은가 :) 그냥 로컬로 시도했다.

작은 말 : Foxx에서는 모든 컬렉션 이름 앞에 탑재 지점에 대한 정보가 접두사로 붙습니다. 그 이유는 충돌하지 않고 Foxx 앱을 여러 번 설치할 수 있어야한다는 것입니다. 또한 여러 앱에 'x'컬렉션이있어 거기에 다른 것을 저장해야 할 수도 있습니다. 이것이 우리가 applicationContext.collectionName을 가지고있는 이유입니다. 그래프 관련 콜렉션의 이름을 지정할 때 이것을 사용하는 것이 좋습니다! 어떻게 작동하는지 알고 싶다면 간단한 예제 앱으로 스 니펫을 변환했습니다.여기에 대한 요지가 있습니다 :

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