diff --git a/src/calibre/db/backend.py b/src/calibre/db/backend.py index d556e8fc08..754e08a9c7 100644 --- a/src/calibre/db/backend.py +++ b/src/calibre/db/backend.py @@ -31,7 +31,7 @@ from calibre.utils.filenames import ( WindowsAtomicFolderMove, atomic_rename, remove_dir_if_empty, copytree_using_links, copyfile_using_links) from calibre.utils.img import save_cover_data_to -from calibre.utils.formatter_functions import load_user_template_functions +from calibre.utils.formatter_functions import load_user_template_functions, unload_user_template_functions from calibre.db.tables import (OneToOneTable, ManyToOneTable, ManyToManyTable, SizeTable, FormatsTable, AuthorsTable, IdentifiersTable, PathTable, CompositeTable, UUIDTable, RatingTable) @@ -1033,6 +1033,10 @@ class DB(object): def close(self, force=False): if getattr(self, '_conn', None) is not None: + try: + unload_user_template_functions(self.library_id) + except Exception: + pass self._conn.close(force) del self._conn diff --git a/src/calibre/gui2/ui.py b/src/calibre/gui2/ui.py index 1335846de3..0adfd2628c 100644 --- a/src/calibre/gui2/ui.py +++ b/src/calibre/gui2/ui.py @@ -634,9 +634,6 @@ class Main(MainWindow, MainWindowMixin, DeviceMixin, EmailMixin, # {{{ olddb = self.library_view.model().db if copy_structure: default_prefs = olddb.prefs - - from calibre.utils.formatter_functions import unload_user_template_functions - unload_user_template_functions(olddb.library_id) except: olddb = None try: