Skip to content

Datenaustausch zwischen datacat Instanzen

SeeRoSee edited this page Jan 9, 2022 · 2 revisions

Für das lokale Testen von datacat, zum Prüfen neuer Funktionalitäten oder zum Austausch in Arbeitsgruppen kann der Transfer von Datensätzen entscheidend sein. Mit Hilfe dieser Anleitung wird zum Einen beschrieben wie zwischen lokalen Installationen von datacat ein Austausch stattfinden kann und zum Anderen wie der Datenbestand von datacat.org in die lokale Installation eingeladen werden kann. Voraussetzung ist die Installation via dem Leitfaden zur lokalen Installation mittels der Variante für Entwickler (mit Entwicklungsumgebung).

Austausch zwischen lokalen Instanzen

  1. Back-End über Konsole oder docker-Interface starten
  2. In Konsole (cmd) CONTAINER_ID von 'neo4j:4.1'-Image ermitteln
docker ps
  1. Kopie des lokalen Datenbestandes erstellen
docker cp CONTAINER_ID:/var/lib/neo4j/data/. PFAD/ZUM/ORDNER/docker_backup
  1. Überprüfung

Im angegebenen Verzeichnis sollten nun drei Ordner vorhanden sein:

  • databases
  • dbms
  • transactions
  1. Teilen

Das Verzeichnis mit den, in Schritt 4. aufgelisteten, Ordnern kann auf dem Startsystem gepackt (.zip) und auf dem Zielsystem entpackt werden.

  1. Zielsystem: Struktur anlegen

Um den Datenbestand einladen zu können muss zunächst im Backend-Verzeichnis ein neuer Ordner 'volumes' angelegt werden. Dieser muss auf einer Ebene mit u.a. dem 'src' und 'backups'-Verzeichnis liegen. In den angelegten Ordner kann das in Schritt 5 gepackte Verzeichnis entpackt werden.

  1. Zielsystem: Einladen der Daten

Das Einladen ersetzt den vorherigen Datenbestand vollständig! Falls gewünscht, auch von diesem wie in Schritt 1 bis 3 ein Backup erstellen.

Im Backend-Verzeichnis befindet sich, auf einer Ebene mit dem 'volumes'-Ordner, die 'docker-compose.yml'-Datei. In dieser ist der Abschnitt 'db' von Relevanz:

  db:
    container_name: "db"
    image: neo4j:4.1
    ports:
      - "7687:7687"
      - "7474:7474"
    environment:
      - NEO4J_AUTH=neo4j/s3cret
    volumes:
      - "dbdata:/data"
      - "dblogs:/logs"

Das Volumen 'data' wird hier durch den eingefügten Datenbestand ersetzt. Dafür muss

- "dbdata:/data"

durch

- ./volumes:/data

ersetzt werden.

  1. Zielsystem: Neustart

Damit der Datenbestand übernommen wird, muss der Docker-Container 'datacat' über das docker-Interface gelöscht werden. Über die Konsole kann, wenn man sich im Backend-Verzeichnis befindet, über

docker-compose up -d

der Container anschließend neu gestartet werden. Nach kurzer Ladezeit sollte nun über das Front-End via 'localhost:3000' der geladene Datenbestand sichtbar sein.

Laden des serverseitigen Datenbestandes (datacat.org)

  1. Datenbestand herunterladen

Über einen cronjob wird auf dem Server regelmäßig eine Sicherungskopie des Datenbestandes angelegt. Diese wird serverseitig im 'backups'-Verzeichnis gespeichert. Um diese herunterzuladen gibt es mehrere Möglichkeiten:

  • Zugriff auf Server via WinSCP
  • Zugriff auf Server via SSH-Client (in Windows: PuTTY)
  1. Zielsystem: Struktur anlegen

Um den Datenbestand einladen zu können muss zunächst im Backend-Verzeichnis ein neuer Ordner 'volumes' angelegt werden. Dieser muss auf einer Ebene mit u.a. dem 'src' und 'backups'-Verzeichnis liegen. In den angelegten Ordner kann das in Schritt 1 heruntergeladene Verzeichnis gespeichert werden.

Hinnweis: Das Backup von datacat.org beinhaltet neben den drei benötigten Ordner noch eine '.gitignore'-Datei sowie ein Verzeichnis 'dumps'. Diese können gelöscht oder ignoriert werden.

  1. Zielsystem: Einladen der Daten

Das Einladen ersetzt den vorherigen Datenbestand vollständig! Falls gewünscht, analog zu Schritt 1 bis 3 aus dem ersten Teil der Anleitung ein Backup erstellen.

Im Backend-Verzeichnis befindet sich, auf einer Ebene mit dem 'volumes'-Ordner, die 'docker-compose.yml'-Datei. In dieser ist der Abschnitt 'db' von Relevanz:

  db:
    container_name: "db"
    image: neo4j:4.1
    ports:
      - "7687:7687"
      - "7474:7474"
    environment:
      - NEO4J_AUTH=neo4j/s3cret
    volumes:
      - "dbdata:/data"
      - "dblogs:/logs"

Das Volumen 'data' wird hier durch den eingefügten Datenbestand ersetzt. Dafür muss

- "dbdata:/data"

durch

- ./volumes:/data

ersetzt werden.

Um den Datenbestand laden zu können, ist es zwingend notwendig die Zugangsdaten zu der serverseitigen neo4j-Datenbank zu kennen. Das damit in Verbindung stehende Passwort muss in der 'docker-compose.yml'-Datei an den folgenden Stellen das standardmäßige Passwort 's3cret' (in Zeile 20 und 37) ersetzen:

- spring.data.neo4j.password=s3cret
- NEO4J_AUTH=neo4j/s3cret
  1. Zielsystem: Neustart

Damit der Datenbestand übernommen wird, muss der Docker-Container 'datacat' über das docker-Interface gelöscht werden. Über die Konsole kann, wenn man sich im Backend-Verzeichnis befindet, über

docker-compose up -d

der Container anschließend neu gestartet werden. Nach kurzer Ladezeit sollte nun über das Front-End via 'localhost:3000' der geladene Datenbestand sichtbar sein.