Broken again
The previous commands removed dulicates. But, again, moving around files or
deleting them breaks your database. Once again:
Start fontlinge_base with the --dbinsert option.
OK, that's it. You have a valid font database. And you have a very well
organized ~/fontbase-folder.
Duplicate Entry?
If you see a message "DBD::mysql::st execute failed: Duplicate entry
'/path/to/a/font.ttf' for key 1 [...]", you are just trying to insert a
font into the database twice.
We catch these duplicates to avoid data loss at dupekill - if you
compare a file with itsself, it is probably identical ;-) and would
be deleted.
Duplicates can have multiple reasons:
- You use
--dbkeep with a directory you already added to
the database.
- There's a symlink to a file which is in the database already.
We resolve symlinks to their "real" path when filling the database
because the content of symlink and real file are identical, which would
allow deletion of one of them - according to Murphy's law always
the file would be deleted, never the symlink ;-)
- You try to insert a directory with multiple PostScript fonts which
are not divided into multiple directories (i. e. directly from a fonts
CD). When inserting PS fonts (which always contain multiple files) into
the database, we only use the directory name, but no file name.
Resolution: First sort your fonts using --copy or
--move, then insert ~/fontbase into the database.
| |
Experts only:
If you've divided your Fontbase into several directories, you'll want to have all the
directories in the database. This is done with the parameter --dbkeep.
--dbkeep may not be given when reading the first directory because
we have to remove the outdated entries from the database first.
Use the following command sequence:
--dbinsert ~/fontbase
--dbinsert --dbkeep ~/many-fonts
--dbinsert --dbkeep ~/more-fonts
|