In den Tiefen der Adobe Lightroom Datenbankstruktur versunken. Teil 1

In den Tiefen der Adobe Lightroom Datenbankstruktur versunken. Teil 1

Für eine kleine neue Anwendung die mir das Leben erleichtern soll, ist es von Nöten, bestimmte Informationen aus Adobe Lightroom Katalogen aus zu lesen und weiter zu verarbeiten.

Der sogenannte Lightroom Katalog (*.lrcat) ist nichts anderes als eine SQLite Datenbank. In dieser Datenbank werden alle relevanten und benötigten Information in 56 Tabellen verwaltet. Schaut man sich diese Tabellen einmal auf den ersten Blick an, so wird man schnell feststellen, das es garnicht so einfach ist an die gewünschten Informationen zu kommen.

Erstellt man einen neuen Lightroom Katalog, so wird eine neue Datenbank mit allen Tabellen angelegt. Betracht man sich nun die Tabellen, so wird man feststellen das in den meisten Tabellen gähnende Leere herrscht.

Bei genauerer Betrachtung stellt man fest, das eine Tabelle mit vorinitialisierten Werten gefüllt ist. Der Name der Tabelle lautet Adobe_variablesTable.

Aus dieser Tabelle werden beim importieren von Bildern in Lightroom, für den Import benötigte Werte gezogen. Was geschieht nun genau beim importieren von Bildern?

Aus der Tabelle Adobe_variablesTable wird der erste Eintrag (Feld: id_local = 1) benötigt. Im Feld: value = 16 steht der Anfangszähler für die Nummerierung der importierten Bilder. Betrachtet man den Katalog nach einem ersten Import erneut, so wird man feststellen, das in der Tabelle neue Felder hinzugefügt wurden.

In der Tabelle AgPhotoPropertySpec wird ein neuer Eintrag mit der id_local = 16 angelegt.

Weiter geht es nun mit der Tabelle AgLibraryFolder.

id_local id_global pathFromRoot rootFolder
18 3BCFFD5C-125C-45CE-AA14-C8AB14723C57 17

Diese Tabelle ist Bindeglied zwischen allen anderen benötigten Tabellen.

Die Tabelle AgLibraryImport enthält nach dem importieren nun einen Eintrag mit einem Wert in dem Feld: id_local = 19 und dem Importdatum und Uhrzeit.

Eine weitere sehr wichtige Tabelle ist die AgLibraryImportImage. Diese Tabelle enthält drei Felder: id_local, image und import.

id_local image import
27 21 19

In dieser Tabelle werden Bilder nach Import verwaltet. Hört sich komisch an, ist aber so.

Die Tabelle AgLibraryFile bekommt nun einen neuen Eintrag mit dem Wert 22 im Feld id_local. In dieser Tabelle stehen nun die ersten verwendbaren Informationen des Bildes. Alles etwas kryptisch aber weiterverwendbar.

Auf das Feld: folder = 18 sollte man achten, da hier der Pfad zu dem Bild steht.

Die Tabelle AgLibraryRootFolder enthält die Angaben zu dem Ordner in dem das Bild liegt. Jedoch findet man in dem Feld: id_local = 17 und nicht Feld: id_local = 18.

Der aufmerksame Leser wird sicherlich festgestellt haben, das es hier in der Verbindung der Tabellen eine numerische Verbindung zwischen den Tabellen gibt. Das Interessante daran ist aber, die fortlaufende Nummerierung.

Diese Nummerierung ist ein Nummernkreis, der sich für einen Import für alle Einträge durchzieht. Und dies kann auf dem ersten Blick sehr verwirrend sein.

Bis hierher soll es erst einmal im ersten Teil reichen.

Weiter geht es im zweiten Teil. Dann schauen wir uns an wie die weiteren Informationen des Importes verwaltet werden und was passiert, wenn ein neues Bild des Importes verarbeitet wird.

Dann wird es nämlich unübersichtlich in den Tabellen 🙂 .

Über den Autor

Hallo, mein Name ist Martin und ich blogge hier über das sammeln historischer Kameras und alles was mit Photographica zu tun hat. Ich wünsche allen Lesern viel Spaß beim lesen meines Blogs.

Schreibe einen Kommentar

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

 

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.