2016-10-28 2 views
1

я создал контейнер Docker для Neo4j с помощьюЗаполнение Neo4j В Докер контейнере

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

Это, как и ожидалось, создает пустую базу данных графа. Для нашего случая использования мы хотели бы иметь предварительно заполненную базу данных.

Любая помощь будет оценена по достоинству - предпочтительно параметры командной строки, если таковые имеются.

Заранее спасибо.

+0

Установите ваш graph.db в свой neo4j? Я не эксперт в Neo4j, но это кажется для меня вариантом. – lvthillo

+0

смотрите http://stackoverflow.com/questions/25920029/setting-up-mysql-and-importing-dump-within-dockerfile – user2915097

ответ

1

Вы можете посмотреть на пример в https://dzone.com/articles/how-neo4j-data-import-minimal,

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

Это заполнит person.db. Для заполнения по умолчанию graph.db,

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

где setup.cql выглядит как

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); 

2 CSV файлов, people & friendships, имеют заголовки personId,name и personId1,personId2 соответственно.

Смежные вопросы