2016-10-28 6 views
1

Ich habe einen Container Docker für Neo4j mitBestücken Neo4j In Docker Container

$ docker run --name my-neo4j -p 7474:7474 -p 7687:7687 \ 
      -v ~/path/to/volume1:/data:rw -d neo4j:3.0.6 

Dies ist, wie erwartet, erstellt eine leere Graph-Datenbank. Für unseren Anwendungsfall möchten wir eine vorbelegte Datenbank haben.

Jede Hilfe wäre wünschenswert - vorzugsweise Befehlszeilenoptionen, falls vorhanden.

Vielen Dank im Voraus.

+0

mounten Sie Ihre graph.db in Ihrem neo4j? Ich bin kein Experte in Neo4j, aber das scheint eine Option für mich zu sein. – lvthillo

+0

werfen Sie einen Blick auf http://stackoverflow.com/questions/25920029/setting-up-mysql-and-importing-dump-within-dockerfile – user2915097

Antwort

1

Sie können https://dzone.com/articles/how-neo4j-data-import-minimal am Beispiel einen Blick,

$ docker exec -i my-neo4j bin/neo4j-import --into /data/databases/person.db \ 
              --nodes:Person /data/people.csv \ 
              --relationships:KNOWS /data/friendships.csv 

Das die person.db bevölkern. So füllen Sie den Standard graph.db,

$ docker exec -i my-neo4j bin/neo4j-shell < ./local/path/to/setup.cql 

wo die setup.cql wie

sieht
LOAD CSV WITH HEADERS FROM 'file:///data/people.csv' AS line 
FIELDTERMINATOR ',' 
MERGE (p:Person {person_id:line.personId, name:line.name}); 

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///data/friendships.csv" AS line 
FIELDTERMINATOR ',' 
MATCH (p1:Person),(p2:Person) 
WHERE p1.person_id = line.personId1 AND p2.person_id= line.personId2 
CREATE UNIQUE (p1)-[r:KNOWS]->(p2); 

Die 2 CSV-Dateien, people & friendships, hat Header personId,name und personId1,personId2 ist.