macOS Notizen reparieren

Knapp drei Jahre ist es her, dass ich mich ausführlich damit beschäftigt habe, wie man die Notizen App auf dem iPhone wieder auf Kurs bringen kann, falls einem mal ein Missgeschick passiert ist. Jetzt ist es wieder soweit – erneute widme ich mich den Apples Notizen, diesmal jedoch mit macOS High Sierra.

Mein Ziel: die Sortierreihenfolge der Notizen in Ordnung bringen

In einem Anfall von Übereifrigkeit hatte mir ein Exchange Server meine Notizen einfach „wegarchiviert“, was dazu führte, dass schlichtweg keine Notizen mehr auf meinem Laptop waren. Dieser Fehler lies sich zwar durch das „Zurückschieben“ der archivierten Notizen schnell beheben, dann jedoch hatte ich ein neues Problem: die Reihenfolge der Elemente war total hinüber.

Dieser Beitrag hilft bei folgenden Problemen (@Google: finde mich mit diesen Suchphrasen):

  • Reihenfolge der Notizen ändern unter macOS
  • macOS Notizen App Änderungsdatum ändern
  • Erstellungsdatum einer Notiz korrigieren macOS
  • macOS Notizen sind völlig unsortiert

Technische gesehen könnte dieser Beitrag auch helfen, gelöschte Notizen wiederzufinden – damit habe ich mich aber noch nicht beschäftigt. Dennoch sollte die Datenbank, um die es hier geht, dafür den richtigen Ansatz bieten.

Apple Notes unter der Haube

Doch zurück zu meinem Problem, was war passiert? In seiner internen Datenbank unterscheidet die Notizen-App zwischen dem Erstellungsdatum (DateCreated) und dem Datum der letzten Änderung (DateEdited). Normalerweise nehme ich stets das Create-Date als Sortierkriterium. Dummerweise wurde durch das o.g. „Zurückschieben“ der Notizen auf den Server ein neues DateCreated Datum gesetzt – mit dem Effekt, dass auf einmal mehrere hundert Notizen allesamt auf den selben Tag datierten. Eine Katastrophe. Da musste etwas passieren – so konnte es nicht bleiben.

Aus technischer Sicht unterscheidet sich die Apple Notes App unter macOS nur unwesentlich von ihrer kleinen Schwester unter iOS – und mit der kannte ich mich zum Glück schon etwas aus. Also machte ich mich wieder mal ran.

Projektskizze: Notizen unter macOS reparieren

Kurz und knapp, so ist der Plan:

  • auf dem macOS Gerät wird die Notizen-Datenbank gesucht
  • mit SQLite Expert Professional werden die Reparaturen ausgeführt
  • und anschließend wird die reparierte Datenbank wieder zurückkopiert bzw. einfach überspeichert

Disclaimer: die meisten Unfälle passieren im Haushalt

Dieser Beitrag richtet sich an Leute, die ein gewisses technisches Grundverständnis für Datenbanken und Programmiersprachen mit sich bringen. Aus einzelnen Kommentaren zum Vorgängerartikel dieses Beitrags weiß ich, dass nicht alle meine Leser dieses Grundverständnis mitbringen. Wer also noch nie programmiert hat, der muss davon ausgehen, dass dieser Artikel nicht für ihn gedacht ist.

Schritt 1: Das richtige Werkzeug

Benötigt wird eine Software, mit der SQLite Datenbankdateien verändert werden können. Ich nutze dafür SQLite Expert Professional. Die Software gibt es als kostenlose Trialversion sowie auch in einer Freewarevariante. Beide Varianten können die hier beschriebenen Operationen durchführen. Die Software läuft unter Windows.

Schritt 2: Die richtige Datei

Als nächstes muss die „Notizen“-Datenbank auf dem macOS Rechner gefunden und kopiert werden. Achtet darauf, dass die Notizen App nicht ausgeführt wird, bevor ihr den Kopiervorgang anstößt.

Die gesuchte Datei liegt hier:

/Users/Benutzername/Library/Containers/com.apple.Notes/Data/Library/Notes/NotesV7.storedata

Diese Datei muss nun auf den Rechner, auf dem SQLite Expert Professional läuft. Kopiert dazu die Datei auf einen USB Stick oder sendet sie euch per Mail. Um die Datei leichter versenden zu können, kopiert sie euch auf den Desktop. Am einfachsten geht das über das Terminal. Zum Beispiel so:

cd /Users/Benutzername/Library/Containers/com.apple.Notes/Data/Library/Notes/
cp NotesV7.storedata /Users/Benutzername/Desktop/

Schritt 3: Datenbank analysieren

Öffnet die Datei im SQLite Expert Professional (File / Open Database). Achtet darauf, den Suchfilter für die Dateien auf „All Files“ umzustellen, die Dateiendung von Apple passt nicht zu dem, was die SQLite Software gerne hätte.

Ist das erledigt, klickt am linken Rand auf die Tabelle ZNOTE und anschließend auf den Registerreiter Data. Dann haltet kurz inne und schaut euch um. Die sich öffnende Tabelle ist der Schlüssel zu den Metadaten der Notizen. Hier stehen die fraglichen Sortierdaten sowie diverse andere Schlüssel.

Tipp: Diejenigen Leser, die hier sind, weil sie mit irrtümlich gelöschten Notizen zu kämpfen haben, dürften hier sowie in der Tabelle ZNOTEBODY hoffentlich einen Ansatz zur Problemlösung finden.

Schritt 4: Das Erstellungsdatum neu festlegen

Da die Notizen auf der Basis der Spalte ZDATECREATED sortiert werden, besteht der Trick nun darin, dieses Datum neu zu setzen. Hier könnte man nun manuell jeden Datensatz von Hand tunen, für meine Zwecke reicht es aus, als neues Erstellungsdatum einfach das Datum der letzten Änderung zu nehmen – ich ändere meine Notizen eben so gut wie nie nach dem Erstellungstag. Um das in einem Rutsch zu erledigen, benötigen wir ein SQL Kommando.

Klickt dazu zunächst auf den Register SQL. Gebt dann folgenden Code ein:

UPDATE
 [main].[ZNOTE]
SET
 [zdatecreated] = [zdateedited];

Tipp: Wenn ihr mehrere Accounts (z.B. Exchange, iCloud, lokal) in euren Notizen nutzt, macht es ggf. Sinn, den SQL-Code mit einer Einschränkung zu versehen. In diesem Fall müsste man noch eine Where-Klausel anheften und die Datensätze etwas einschränken.

Das war es. Abgespeichert werden muss hier nichts mehr – wie im echten Leben gelten SQL-Kommandos mit der Ausführung als ausgeführt. Sehr sympathisch. Schließt die Anwendung, nehmt euch die Datei und kopiert sie auf den macOS Rechner zurück. Startet eure Notizen App und freut euch des Lebens, das Problem ist gelöst.

Ausblick

Der hier präsentierten Hack hat durchaus noch mehr Problemlösungspotenzial – und zwar auch für die Notizen auf iOS Geräten.

Bis iOS 9 war es möglich, das hier präsentierte Vorgehen auch auf dem iPhone anzuwenden. Dem hat Apple ab iOS 10 einen Riegel vorgeschoben. Wer nun aber ein vergleichbares Notizen Problem auf seinem aktuellen iPhone (oder iPad) hat, der kann es eventuell dadurch lösen, dass er die Notizen vom iPhone auf den Mac überträgt – zum Beispiel per iCloud. Ich kann mir vorstellen, dass irgendeine Form von SQLite-Datei über die iCloud mit syncronisiert wird. Falls das zutreffend ist, sollten die gewünschten Änderungen über die Notizen-Datenbank am Mac durchgeführt werden. Anschließend werden die überarbeiteten Notizen in die iCloud zurückgeschoben – von wo aus sie in wohlgeordneter Reihenfolge hoffentlich auf dem iPhone ankommen werden.

Ich habe diesen Weg noch nicht selbst probiert, bin aber zuversichtlich, dass das technisch gehen sollte. Vielleicht kann dazu ja mal jemand etwas in den Kommentaren sagen.

3 Replies to “macOS Notizen reparieren”

  1. Pingback: iPhone Notizen an anderen Speicherort verschieben – Andreas W. Ditze

  2. Sehr gute Anleitung. Das Problem hatte ich bisher noch nicht, aber ich nutze Notizen auch noch nicht so lange. Ertappe mich aber immer oefter, dass ich Dinge dort reinschreibe und nicht nvAlt benutze. Alleine schon im Bilder und Dokumente zu sichern. Sehr praktisch.

  3. Danke für die Analyse. Was bleibt? Notizen – so wie vieles bei Apple eine typische Closed Shop App, bei der die Datenformate nicht offen vorliegen, somdern releaseabhängig mühsam gesucht und auseinandergepfriemelt werden müssen. Wegen diesem Unfug habe ich gerade beim Aufspielen eines neuen Images auf meinen Mac alle Notizen verloren, da sie in der Sicherung des Dokuente-Folders nicht enthalten waren. Unfassbar. Sowas sollte man auf keinen Fall verwenden, wenn man auch nur einen Deut auf Offenheit und Migrierbarkeit Wert legt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert