Skip to content
Elemmire edited this page Feb 2, 2022 · 48 revisions

Updating Aquila HGV’s mariaDB database from a Google Sheet CSV dump

NEU*** (EMPFOHLEN/AKTUELLER PROZESS) Kochrezept zum Aktualisieren der Datenbestände in MariaDB auf heiCloud-Rechner

  1. Neue Einträge und Änderungen im Google Sheet vornehmen
  • dabei kann das Tab »hgv« in folgendem Sheet als Vorlage benutzt werden, indem man den Inhalt löscht, die Formeln jedoch behält und gegebenfalls durch »Herunterziehen« auf weitere Zeilen überträgt https://docs.google.com/spreadsheets/d/12z4_rcNBrg-azyKu8DLfYbbOmr9tXrZMjZW2md7e2X4/edit#gid=63283008
  • in dem Sheet finden sich im Tab »Bedienungsanleitung« Hinweise zur Bedeutugn der Kopfzeilen sowie zur Handhabung der Felder
  • folgende Felder werden vom Import berücksichtigt
    • tm_id / hgv_letter / multiple_letter / hgv_id_long
    • hgv_id (entspricht primary key der Tabelle hgv)
    • publication_long / publication / volume / volume_extra / number / number_extra / side
    • material
    • date_1 / date_2
    • day_1 / month_1 / year_1 / century_1 / extra_1
    • day_2 / month_2 / year_2 / century_2 / extra_2
    • uncertain
    • chron_minimum / chron_maximum / chron_global
    • original_title / content
    • provenance / provenance_type (noch nicht) / place_name (noch nicht) / nome (noch nicht) / province (noch nicht) / region (noch nicht)
    • other_publication / published_photo / translations
    • notes
    • mentioned_dates
    • image_link
    • place (noch nicht) / collection (noch nicht) / inventory_number
    • ddb_collection_hybrid / ddb_volume_number / ddb_document_number
    • created
  1. Daten aus Google Sheet exportieren

eine mögliche Vorgehensweise, um ein Google Sheet in FODS-Format zu überführen bei minimaler Parametrierarbeit (z.B. anstatt die Datenzeile anzugeben, einfach und alle fortfolgenden Spalten als Daten interpretiert werden dürfen, oder anstatt bei Import den Tab-Namen anzugeben, einfach das Tab hgv nennen):

  • Google Sheet öffnen, darauf achten, dass alle relevanten Datenfelder ausgefüllt wurden
  • Sheet exportieren über Menübefehl File > Download > Comma Separated File (.csv)
  • heruntergeladene Datei mit LibreOffice öffnen, und über den Menübefehl File > Save As… > Flat XML ODF Spreadsheet (.fods) im data-Ordner des Aquila-Projekts unter dem Namen hgv.fods ablegen; für einfacheres Handling beim Import dabei folgende Konventionen beachten:
    • den Tab mit den Daten in hgv umbenennen (zumeist der einzige Tab)
    • die erste Zeile sollte die Spaltenüberschriften enthalten (also tm_id, material, provenance, usw.)
    • die Daten sollten ab Zeile 2 beginnen (Leerzeilen erlaubt)
  1. Exportierte XML-Daten auf dem Server speichern
scp hgv.fods ubuntu@123.456.789.012:/var/www/aquila/data/
scp hgv.fods ubuntu@123.456.789.012:/var/www/aquila_dev/data/
  1. Importskript über die Kommandozeile aufrufen

Die Import-Datei wird unter dem Namen hgv.fods im Verzeichnis /var/www/aquila_dev/data bzw. /var/www/aquila/data erwartet. Das Verzeichis data steht nicht unter git-Versionskontrolle. Um die Datei zu importieren, aus einem Uni-Netz oder durch einen VPN-Tunnel per ssh auf dem Server einwählen, in das Verzeichnis für die HGV-Webseite wechseln und das Importskrip starten:

ssh ubuntu@123.456.789.012
cd /var/www/aquila_dev
cd /var/www/aquila
bin/console app:update-records dry-run
bin/console app:update-records

Basismodul ausführen (lediglich Auflistung der verfügbaren Felder, kein Import)

bin/console app:read-fods

NEU*** (ABER VOM PROZESS HER SCHON WIEDER VERALTET) Kochrezept zum Aktualisieren der Datenbestände in MariaDB auf heiCloud-Rechner

  1. Änderungen in der FileMaker 12 Datenbank durchführen
  • Beim Ändern der Datensätze darauf achten, dass das Feld _lastModified gesetzt wird. Dies geschieht bei händischen Korrekturen automatisch. Nach einem Datenabgleich oder nach einem Import (z.B. über das Menü Datei→Ablage→Daten importieren→Datei…) muss es jedoch von Hand gesetzt werden (z.B. 24.06.2015).
  1. Daten aus FileMaker 12 Datenbank exportieren
  • geänderte Datensätze Aufrufen, z.B. mit einer Suche nach allen Datensätzen mit einem bestimmten Wert im Feld _lastModified
  • in Layout Web wechseln
  • im Menü Ablage→Exportieren klicken
  • im Dateidialog hgvUpdate.xml als Dateiname angeben and XML als Exporttyp wählen (FMPXMLRESULT - auf Fortsetzen klicken)
  • im Exportfeldfolge-Dialog Aktuelles Layout ("Web") und Unicode (UTF-8) auswählen, anschließend alle Felder kopieren und Exportieren klicken
  1. Exportierte XML-Daten auf dem Server speichern
scp hgvUpdate.xml ubuntu@123.456.789.012:/var/www/aquila/data/
scp hgvUpdate.xml ubuntu@123.456.789.012:/var/www/aquila_dev/data/
  1. Importskript über die Kommandozeile aufrufen

Die Import-Datei wird unter dem Namen hgvUpdate.xml im Verzeichnis /var/www/aquila_dev/data bzw. /var/www/aquila/data erwartet. Das Verzeichis data steht nicht unter git-Versionskontrolle. Um die Datei zu importieren, per ssh auf dem Server einwählen, in das Verzeichnis für die HGV-Webseite wechseln und das Importskrip starten:

ssh ubuntu@123.456.789.012
cd /var/www/aquila_dev
cd /var/www/aquila
bin/console app:update-database

Basismodul ausführen (lediglich Auflistung der verfügbaren Felder, kein Import)

bin/console app:parse-hgv-fmp

NEU*** Kochrezept zum Löschen von Datensätzen

  1. zu löschende Daten in einer CSV-Datei namens hgvDelete.csv sammeln

Es wird die vollständige HGV-Id benötigt,also die TexIDLang, die aus TM-Nr., TexLett und Mehrfachkennung besteht, z.B.

    14073
    40601a
    40601b X
    40601b Y
    14074 X
    14074 Y
  1. CSV-Datei auf dem Server speichern

Mit dem Server verbinden und die Datei unter /var/www/aquila/data ablegen.

scp hgvDelete.csv ubuntu@123.456.789.012:/var/www/aquila/data/
scp hgvDelete.csv ubuntu@123.456.789.012:/var/www/aquila_dev/data/
  1. Löschskript über die Kommandozeile aufrufen

Auf dem Server per ssh einwählen in das Verzeichnis für die HGV-Webseite wechseln und Löschskript starten:

ssh ubuntu@123.456.789.012
cd /var/www/aquila_dev
cd /var/www/aquila
bin/console app:delete-records

NEU*** Zusammenfassung der Konsolenbefehle

Workflow für die Kommandozeile, um erst dev und anschließend prod zu aktualisieren unter der Vorraussetzung, dass hgvUpdate.xml und hgvDelete.csv bereits auf dem Server im data-Verzeichnis der dev environment gespeichert wurden (/var/www/aquila_dev/data):

    ssh ubuntu@123.456.789.012
    cd /var/www/aquila_dev
    sudo bin/console app:delete-records
    sudo bin/console app:update-database
    sudo cp data/hgvUpdate.xml data/hgvDelete.csv ../aquila/data/
    cd ../aquila
    sudo bin/console app:delete-records
    sudo bin/console app:update-database

Clone this wiki locally