diff --git a/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db b/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db index 214da53d8..233798527 100755 --- a/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db +++ b/deployment/legacy-migration/maintenance-worker/binaries/import_legacy_db @@ -1,6 +1,6 @@ #!/usr/bin/env bash set -e -for var in "SSH_USERNAME" "SSH_HOST" "MONGODB_USERNAME" "MONGODB_PASSWORD" "MONGODB_DATABASE" "MONGODB_AUTH_DB" "NEO4J_URI" +for var in "SSH_USERNAME" "SSH_HOST" "MONGODB_USERNAME" "MONGODB_PASSWORD" "MONGODB_DATABASE" "MONGODB_AUTH_DB" do if [[ -z "${!var}" ]]; then echo "${var} is undefined" diff --git a/deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh b/deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh index ed033c1b9..b7de74782 100755 --- a/deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh +++ b/deployment/legacy-migration/maintenance-worker/migration/neo4j/import.sh @@ -1,10 +1,11 @@ #!/usr/bin/env bash set -e +SECONDS=0 SCRIPT_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" + echo "MATCH (n) DETACH DELETE n;" | cypher-shell -SECONDS=0 for collection in "badges" "categories" "users" "follows" "contributions" "shouts" "comments" do for chunk in /tmp/mongo-export/splits/$collection/* diff --git a/deployment/legacy-migration/maintenance-worker/docker-compose.yml b/docker-compose.maintenance.yml similarity index 74% rename from deployment/legacy-migration/maintenance-worker/docker-compose.yml rename to docker-compose.maintenance.yml index a2e4ebc9e..113b4492c 100644 --- a/deployment/legacy-migration/maintenance-worker/docker-compose.yml +++ b/docker-compose.maintenance.yml @@ -2,18 +2,19 @@ version: "3.4" services: maintenance: - command: "idle" # remove this line to start neo4j automatically image: humanconnection/maintenance-worker:latest build: - context: . + context: deployment/legacy-migration/maintenance-worker volumes: - uploads:/uploads - neo4j-data:/data - - ./migration/:/migration - - ./ssh/:/root/.ssh + - ./deployment/legacy-migration/maintenance-worker/migration/:/migration + - ./deployment/legacy-migration/maintenance-worker/ssh/:/root/.ssh networks: - hc-network environment: + - NEO4J_dbms_security_auth__enabled=false + - NEO4J_dbms_memory_heap_max__size=2G - GRAPHQL_PORT=4000 - GRAPHQL_URI=http://localhost:4000 - CLIENT_URI=http://localhost:3000 @@ -22,7 +23,6 @@ services: - MAPBOX_TOKEN=pk.eyJ1IjoiaHVtYW4tY29ubmVjdGlvbiIsImEiOiJjajl0cnBubGoweTVlM3VwZ2lzNTNud3ZtIn0.KZ8KK9l70omjXbEkkbHGsQ - PRIVATE_KEY_PASSPHRASE=a7dsf78sadg87ad87sfagsadg78 - NEO4J_apoc_import_file_enabled=true - - NEO4J_AUTH=none - "SSH_USERNAME=${SSH_USERNAME}" - "SSH_HOST=${SSH_HOST}" - "MONGODB_USERNAME=${MONGODB_USERNAME}" @@ -34,9 +34,11 @@ services: - 7687:7687 - 7474:7474 -volumes: - uploads: - neo4j-data: - networks: hc-network: + +volumes: + webapp_node_modules: + backend_node_modules: + neo4j-data: + uploads: diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 26dc68619..a71418229 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -18,6 +18,7 @@ services: volumes: - ./backend:/nitro-backend - backend_node_modules:/nitro-backend/node_modules + - uploads:/nitro-backend/public/uploads command: yarn run dev neo4j: environment: @@ -32,3 +33,4 @@ volumes: webapp_node_modules: backend_node_modules: neo4j-data: + uploads: diff --git a/neo4j/migrate.sh b/neo4j/migrate.sh index f52539555..6f3361b8a 100755 --- a/neo4j/migrate.sh +++ b/neo4j/migrate.sh @@ -4,7 +4,11 @@ # the initial default user. Before we can create constraints, we have to change # the default password. This is a security feature of neo4j. if echo ":exit" | cypher-shell --password neo4j 2> /dev/null ; then - neo4j-admin set-initial-password $NEO4J_PASSWORD + if [[ -z "${NEO4J_PASSWORD}" ]]; then + echo "NEO4J_PASSWORD environment variable is undefined. I cannot set the initial password." + else + echo "CALL dbms.security.changePassword('${NEO4J_PASSWORD}');" | cypher-shell --password neo4j + fi fi set -e @@ -17,7 +21,6 @@ CREATE CONSTRAINT ON (c:Category) ASSERT c.id IS UNIQUE; CREATE CONSTRAINT ON (u:User) ASSERT u.id IS UNIQUE; CREATE CONSTRAINT ON (o:Organization) ASSERT o.id IS UNIQUE; CREATE CONSTRAINT ON (t:Tag) ASSERT t.id IS UNIQUE; -CREATE CONSTRAINT ON (c:Category) ASSERT c.id IS UNIQUE; CREATE CONSTRAINT ON (p:Post) ASSERT p.slug IS UNIQUE; @@ -25,3 +28,6 @@ CREATE CONSTRAINT ON (c:Category) ASSERT c.slug IS UNIQUE; CREATE CONSTRAINT ON (u:User) ASSERT u.slug IS UNIQUE; CREATE CONSTRAINT ON (o:Organization) ASSERT o.slug IS UNIQUE; ' | cypher-shell + +echo "Successfully created all indices and unique constraints:" +echo 'CALL db.indexes();' | cypher-shell