Skip to content

Hinweise zum Datentransfer in externe Anwendungen

Sebastian Fiedlschuster edited this page Jun 14, 2019 · 2 revisions

SQL-Dump

Grundlage für den einmaligen Transfer der Datenbank in eine externe Anwendung bildet ein SQL-Dump.

# mysqldump -u #{db_user} -p#{db_password} #{db_name} > #{dump_file}
mysqldump -u wp -p ... wingolfsplattform_production > wingolfsplattform_production-2019-03-31_14-45-59.sql

Hinweise zur Verwendung des SQL-Dumps

Die SQL-Datenbank und somit die exportierte SQL-Datei enthalten alle verwaltungsrelevanten Daten. Dennoch sind einige Hinweise zur Verarbeitung zu beachten:

Datenbank-Schema

Das Datenbank-Schema ist hier einzusehen: https://github.com/fiedl/wingolfsplattform/blob/master/db/schema.rb.

Abgeleitete Daten und die Verwendung der Datenbank-Felder ergeben sich aus den Model-Definitionen https://github.com/fiedl/wingolfsplattform/tree/master/app/models und https://github.com/fiedl/your_platform/tree/master/app/models.

Aktivitätszahlen

Aktivitätszahlen stellen abgeleitete Informationen dar und ergeben sich nach User#aktivitätszahl (https://github.com/fiedl/wingolfsplattform/blob/master/app/models/user.rb#L174).

Siehe auch: /Dok 2011-29/, Abschnitt 3.11 und /Dok 2011-35/, Abschnitt 6.5.

Kontaktinformationen

Kontaktinformationen sind als Profilfelder abgelegt. Siehe User#profile_fields.

Eine wichtige Besonderheit ist bei zusammengesetzten Profilfeldern, beispielsweise Adressdaten, zu beachten: Aufgrund einer Übergangslösung waren diese Daten teils redundant gespeichert. Die Informationen in ProfileFields::Address#value sind als ungültig zu betrachten. Gültig sind die Informationen, die sich aus den Kind-Profilfeldern :first_address_line, :second_address_line, :postal_code, :city, :region, :country_code ergeben. Siehe ProfileFields::Address#composed_address.

Gruppenzugehörigkeiten

Gruppenzugehörigkeiten, z.B. Mitgliedschaften und Status-Zuordnungen in Verbindungen, wurden aufgrund einer Übergangslösung redundant gespeichert (DagLink). Alle Informationen aus indirekten Links DagLink.where(direct: false) sind als ungültig zu betrachten. Die gültigen Informationen ergeben sich rekursiv aus den direkten Verbindungen (DagLink.where(direct: true)). Beispielsweise wird per DagLink.where(ancestor_type: "Group", ancestor_id: 123, descendant_type: "User", descendant_id: 123).first.valid_from der Beginn-Zeitpunkt einer direkten Mitgliedschaft des Benutzers mit der ID 123 in der Gruppe mit der ID 123 abgefragt.

Leibverhältnisse

Die Daten für Leibverhältnisse und Wingolfsverwandtschaften befinden wurden noch nicht in das Wingolfsplattform-System migriert und müssen direkt aus dem Netenviron-Datensatz 2014 übernommen werden.

Rückfragen

Bei Rückfragen erstellen Sie bitte ein Issue unter https://github.com/fiedl/wingolfsplattform/issues.