mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
...
This commit is contained in:
parent
3fd03f45d7
commit
609724c65b
@ -557,6 +557,27 @@ There can be two reasons why |app| is showing a empty list of books:
|
||||
|
||||
* Your metadata.db file was deleted/corrupted. In this case, you can ask |app| to rebuild the metadata.db from its backups. Right click the |app| icon in the |app| toolbar (it will say 0 books underneath it) and select Library maintenance->Restore database. |app| will automatically rebuild metadata.db.
|
||||
|
||||
I am getting errors with my calibre library on a networked drive/NAS?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
**Do not put your calibre library on a networked drive**.
|
||||
|
||||
A filesystem is a complex beast. Most network filesystems lack various
|
||||
filesystem features that |app| uses. Some dont support file locking, some dont
|
||||
support hardlinking, some are just flaky. Additionally, |app| is a single user
|
||||
application, if you accidentally run two copies of |app| on the same networked
|
||||
library, bad things will happen. Finally, different OSes impose different
|
||||
limitations on filesystems, so if you share your networked drive across OSes,
|
||||
once again, bad things *will happen*.
|
||||
|
||||
Consider using the |app| Content Server to make your books available on other
|
||||
computers. Run |app| on a single computer and access it via the Content Server
|
||||
or a Remote Desktop solution.
|
||||
|
||||
If you must share the actual library, use a file syncing tool like
|
||||
DropBox or rsync or Microsoft SkyDrive instead of a networked drive. Even with
|
||||
these tools there is danger of data corruption/loss, so only do this if you are
|
||||
willing to live with that risk.
|
||||
|
||||
Content From The Web
|
||||
---------------------
|
||||
|
@ -271,6 +271,10 @@ class Scanner(Thread):
|
||||
self.cache['version'] = self.CACHE_VERSION
|
||||
self.cache['fonts'] = self.cached_fonts
|
||||
|
||||
def force_rescan(self):
|
||||
self.cached_fonts = {}
|
||||
self.write_cache()
|
||||
|
||||
def read_font_metadata(self, path, fileid):
|
||||
with lopen(path, 'rb') as f:
|
||||
try:
|
||||
@ -301,6 +305,11 @@ class Scanner(Thread):
|
||||
font_scanner = Scanner()
|
||||
font_scanner.start()
|
||||
|
||||
def force_rescan():
|
||||
font_scanner.join()
|
||||
font_scanner.force_rescan()
|
||||
font_scanner.run()
|
||||
|
||||
if __name__ == '__main__':
|
||||
font_scanner.dump_fonts()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user