Fotos verschieben mit darktable

Einleitung

Der freie und offene RAW Editor darktable ist bekanntlich so aufgebaut, das er neben der tollen Funktion der Bildbearbeitung, die Foto-Dateien und Metadaten nur „verwaltet“. Will sagen, der Editor betreibt einerseits eine externe Datenspeicherung indem er die Metadaten zu einem Foto in Begleitdateien im XMP-Format speichert.
Näheres zu den Begleitdateien findest du im darktable Handbuch.
Auf der anderen Seite aber speichert darktable alle Informationen die es für den eigenen Betrieb braucht in eine SQLite Datenbankdatei. Unter anderem die Information unter welchem Speicherpfad deine Fotos liegen.

Problem

Ändert man nun also den Speicherort dieser Fotos, findet darktable diese Bilder nicht mehr wieder. Zwar hat darktable noch alle relevanten Informationen zu diesen Fotos nur der Pfad im Verzeichnisbaum des Betriebssystems zeigt auf einen anderen Ort als dem wo die Fotos nun tatsächlich liegen. Die verschobenen Fotos werden mit dem berüchtigten Totenkopf angezeigt.

darktable selbst gibt einem die Möglichkeit die „toten“ Fotos in seiner Datenbank mit dem neuen Speicherort zu verknüpfen. Das ist für eine handvoll Fotos sicherlich hilfreich und auch machbar. Wer aber wie ich unlängst knapp 400 GB an Fotos verschieben musste und keine Lust hat tausende Filmrollen und zig-tausende Fotos über diesen Weg zu verknüpfen, kann einen anderen, bequemeren Weg wählen.

Lösung

Hi(r)nweis: Natürlich übernehme ich für die folgende Anleitung keinerlei Gewähr. Das Bearbeiten der darktable Datenbank ist selbstverständlich auf eigene Gefahr.
Nur für den Fall das dies nicht sowieso jedem von vornherein klar sein sollte 😉

Da diese Informationen über den Speicherort ja in der Datenbank liegen die glücklicherweise SQL spricht, liegt es natürlich nahe, einfach per SQL-Befehl den Speicherort von dem alten auf den neuen Ort umzubiegen. darktable benutzt die Datenbank SQLite.
Ich gehe in dem nachfolgend beschrieben Weg von meiner Linux-Installation aus (Ubuntu), die Vorgehensweise ist aber auf Windows- und Mac OS-Installationen übertragbar.

Du brauchst das freie Programm DB Browser for SQLite und die Datenbank-Datei von darktable. Und natürlich den vollständigen Speicherpfad der Foto-Dateien VOR und NACH dem Umzug.

Nachdem man du dir den DB Browser for SQLite installiert hast, startest du diesen und öffnest nun die Datei libary.db. Bei mir liegt die Datei im Pfad /home/BENUTZERNAME/.config/darktable
Ersetze BENUTZNAME natürlich durch deinen eigenen Benutzernamen. Denke auch daran dir versteckte Dateien in deinem Dateimanager anzeigen zu lassen damit du den .config-Ordner überhaupt siehst.
Vor dem Öffnen unbedingt darktable schließen eine Sicherheits-Kopie der Datei libary.db anlegen!
Dort gehst du nun auf den Reiter SQL ausführen und gibt folgenden SQL-Befehl ein:

UPDATE
film_rolls
SET
folder = REPLACE(folder,'/PFAD/ZU/DEN/FOTOS/VOR/DEM/VERSCHIEBEN','
/PFAD/ZU/DEN/FOTOS/NACH/DEM/VERSCHIEBEN ')

Klicke auf den „Play“-Button oben um den Befehl auszuführen. Der SQL-Befehl nimmt sich die Tabelle film_rolls und ändert die Einträge in der Spalte folder mit dem Eintrag /PFAD/ZU/DEN/FOTOS/NACH/DEM/VERSCHIEBEN . Aber nur jene Einträge die dem Muster /PFAD/ZU/DEN/FOTOS/VOR/DEM/VERSCHIEBEN entsprechen.
Mit Ausführen werden die Einträge entsprechend abgearbeitet und geändert.
WICHTIG: Erst mit dem Knopf oben Änderungen schreiben werden diese Änderungen auch in die Datenbankdatei zurückgeschrieben! Also nicht vergessen diesen Knopf zu drücken bevor man den DB Browser for SQLite schließt.

Wenn darktable nun geöffnet wird, sollten die Totenköpfe verschwunden sein und alle Filmrollen nun wieder auf den richtigen Speicherort der Fotos verweisen.

Teile es weiter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.