English Version Deutsche Version
Fontlinge
Was ist...?
Download
Man nehme...
Installation
Wie...
Schritt 1 - Einsammeln
Schritt 2 - Check
Schritt 3 - Datenbank
Schritt 4 - Vereinigen
Schritt 5 - Dupekill-pre
Schritt 6 - Dupekill
Schritt 7 - Datenbank 2
Schritt 8 - Vorschauen
WebGUI
Fontposter
Datenbankverwaltung
Links+Danke
Kontakt
 
 
Datenbank kaputt

Die vorherigen Befehle haben Datei-Dupikate entfernt. Unglücklicherweise ist dadurch die Datenbank kaputt, denn die dort verzeichneten Dateien existieren nicht mehr. Daher muß unbedingt nochmal fontlinge_base --dbinsert ~/fontbase ausgeführt werden.

Erst jetzt ist nicht nur der ~/fontbase-Ordner organisiert, sondern auch in der Datenbank korrekt eingetragen.


Duplicate Entry?

Falls Du die Meldung "DBD::mysql::st execute failed: Duplicate entry '/pfad/zu/einem/font.ttf' for key 1 [...]" bekommst, versuchst Du gerade, einen Font doppelt in der Datenbank einzutragen.

Wir fangen diese Duplikate ab, da sonst beim Dupekill Datenverluste auftreten können - wenn man eine Datei mit sich selbst vergleicht, ist sie mit hoher Wahrscheinlichkeit identisch ;-) und würde demzufolge gelöscht.

Duplikate können mehrere Ursachen haben:
  • Du verwendest --dbkeep bei einem Verzeichnis, das Du schonmal in die Datenbank eingelesen hast.
     
  • Es gibt einen Symlink, der auf eine Datei verweist, die schon in der Datenbank steht.
    Wir lösen Symlinks beim Füllen der Datenbank zu ihrem tatsächlichen Pfad auf, da der Dateiinhalt von Symlink und der "echten" Datei identisch und demzufolge ein Löschen erlaubt ist - und nach Murphy's Gesetz würde immer die Datei und nie der Symlink gelöscht ;-)
     
  • Du versuchst, ein Verzeichnis mit mehreren PostScript-Schriften, die nicht in einzelne Verzeichnisse verteilt sind, einzulesen (z. B. direkt von einer Schriften-CD). Bei PS-Fonts, die ja aus mehreren Dateien bestehen, schreiben wir immer nur den Verzeichnisnamen, aber keine Dateinamen, in die Datenbank.
    Abhilfe: Sortiere die Schriften zuerst mit --copy oder --move und lese dann ~/fontbase neu in die Datenbank ein.
  Nur für Experten:

Wenn Du Deine Fontbase in mehreren Verzeichnissen verteilt hast, willst Du vermutlich alle Verzeichnisse gleichzeitig in der Datenbank eingetragen haben. Dafür gibt es den Parameter --dbkeep.

--dbkeep darf aber nicht beim Einlesen des ersten Verzeichnisses angegeben werden, da sonst die veralteten Einträge nicht aus der Datenbank gelöscht würden.

Verwende also die Befehlsfolge
--dbinsert ~/fontbase
--dbinsert --dbkeep ~/many-fonts
--dbinsert --dbkeep ~/more-fonts





Quicktip:

fontlinge_base --dbinsert ~/fontbase/