Skip to content
Elemmire edited this page Oct 13, 2022 · 5 revisions

Datenbank unter Symfony 2 aktualisieren

Kochrezept zum Aktualisieren der Datenbestände

  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
  • mit dem Server verbinden (z.B. afp://Admin@123.456.789.012 im Finder öffnen und das Verzeichnis projects mounten)
  • die Datei unter projects/hgv.dev/src/Papyrillio/HgvBundle/Data/hgvUpdate.xml ablegen (bzw. projects/hgv.prod/src/Papyrillio/HgvBundle/Data/hgvUpdate.xml für das Prokuktionssystem) die Import-Dateien stehen nicht unter git-Versionskontrolle
  1. Importskript über die Kommandozeile aufrufen
  • auf dem Server per ssh einwählen
    • ssh Admin@123.456.789.012
  • in das Verzeichnis für die HGV-Webseite wechseln
    • cd hgv.dev oder cd hgv.prod
  • Importskrip starten
    • php app/console doctrine:fixtures:load --fixtures=src/Papyrillio/HgvBundle/DataFixtures/ORM/Update --append

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 (z.B. afp://Admin@123.456.789.012 im Finder öffnen und das Verzeichnis projects mounten) die Datei unter projects/hgv.dev/src/Papyrillio/HgvBundle/Data/hgvDelete.csv ablegen (bzw. projects/hgv.prod/src/Papyrillio/HgvBundle/Data/hgvDelete.csv für das Prokuktionssystem)
  1. Löschskript über die Kommandozeile aufrufen
  • auf dem Server per ssh einwählen
    • ssh Admin@123.456.789.012
  • in das Verzeichnis für die HGV-Webseite wechseln
    • cd hgv.dev oder cd hgv.prod
  • Löschskript starten
    • php app/console doctrine:fixtures:load --fixtures=src/Papyrillio/HgvBundle/DataFixtures/ORM/Delete --append

Zusammenfassung der Konsolenbefehle

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

ssh Admin@123.456.789.012
cd ~/projects/hgv.dev
php app/console doctrine:fixtures:load --fixtures=src/Papyrillio/HgvBundle/DataFixtures/ORM/Delete --append
php app/console doctrine:fixtures:load --fixtures=src/Papyrillio/HgvBundle/DataFixtures/ORM/Update --append
cp ./src/Papyrillio/HgvBundle/Data/hgvUpdate.xml ./src/Papyrillio/HgvBundle/Data/hgvDelete.csv ~/hgv.prod/src/Papyrillio/HgvBundle/Data/
cd ~/projects/hgv.prod
php app/console doctrine:fixtures:load --fixtures=src/Papyrillio/HgvBundle/DataFixtures/ORM/Delete --append
php app/console doctrine:fixtures:load --fixtures=src/Papyrillio/HgvBundle/DataFixtures/ORM/Update --append

Fehlerbehebung

Wenn etwas mit dem Import schief gehen sollte, weil die XML-Datei ein ungültiges Zeichen enthält:

  • The fields Bemerkungen and Abbildung often have some sort of bad character in XML which messes up the xwalk to MySQL database, Felder mit Leerzeichen und unsichtbaren Zeichen. Um den schuldigen Datensatz zu finden:
    • aus FileMaker XML exportierten (am besten nur die Felder TexIdLang und Bemerkungen, um Volumen zu sparen)
    • die entstandene Datei mit Oxygen öffnen
    • in Oxygen im Menü Dokument→Quelle→Dokument formatieren wählen
    • Oxygen sollte die Fehlerstelle anzeigen

HGV-Buchhaltung und Änderungen in FileMaker 12 Datenbank überspielen

  • Updating Master FileMaker Pro 12 Database from new versions
    • Take the word doc "Buchführung am ..." and go through it from top to bottom
      • For completely new records, which require no deletion or change as a result of their entry, search for them in the new version file and simply import the find set into the Master DB.
      • For new records, where deletion or change of old records is necessary, search for the records, then choose Passende Datensätze in Ergebnismenge akt, match with TM-Nr, texLett, MehrfachKennung using Datensätze mit diesem Feld abgleichen and click Verbleibende Daten als neue Datensätze hinzufügen (Take care if TM has changed or e.g. an Alternativdatierung has gone / been added)
      • For the section called Veränderung aufgrund neuer Korrekturen provide a list of the TM numbers for each record. Use each TM number to call up the record(s) in both databases (New Version and Master Database). Delete the record(s) in the Master Database import from the New Version. Take care where records have more than one TM number in the Wiederholungsfelder for TM.
  • neue Korrekturen
    • a priori make sure the TexIDLang is unique (this is a requirement of the mySQL datbase structure and functioning)
    • introduce a "modified on" field
      • take the New Version database and create a new table matched by PublikationL = PublikationLVgl (this step and the following two indented bullet points are only necessary if one does not know FROM WHEN the first changes were made to the new version of HGV - if one cafind all records changed since any given date that is all that is necessary - search for e.g. >22.11.2014 in zul. geändert am)
        • make new field PublikationLVgl visible in New Version Database
        • search for "*" in this field (number of hits will be bigger than in the "neue Korrekturen" file because of Alternativdatierungen etc)
    • use Passende Datensätze in Ergebnismenge akt and match on TexIDLang and import

Symfony 5 - Import aus FileMaker 12

Aktualisieren der Datenbestände in MariaDB auf heiCloud-Rechner

(NEU, ABER VOM PROZESS HER SCHON WIEDER VERALTET)

  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

Zusammenfassung

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/hgvDelete.csv ../aquila/data/
sudo cp data/hgv.fods ../aquila/data/

cd ../aquila
sudo bin/console app:delete-records
sudo bin/console app:update-database

Clone this wiki locally