From 1bdfd60d520a2926552adef36de37ce98c8173ab Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Thu, 9 Jun 2011 11:26:13 -0400 Subject: [PATCH 1/3] Skip old-database's during bible loading --- openlp/plugins/bibles/lib/manager.py | 55 ++++++++++++++-------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 2a3858afc..74e3cb11e 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -147,33 +147,34 @@ class BibleManager(object): self.db_cache = {} self.old_bible_databases = [] for filename in files: - bible = BibleDB(self.parent, path=self.path, file=filename) - name = bible.get_name() - # Remove corrupted files. - if name is None: - delete_file(os.path.join(self.path, filename)) - continue - # Find old database versions - if bible.is_old_database(): - self.old_bible_databases.append([filename, name]) - bible.session.close() - continue - log.debug(u'Bible Name: "%s"', name) - self.db_cache[name] = bible - # Look to see if lazy load bible exists and get create getter. - source = self.db_cache[name].get_object(BibleMeta, - u'download source') - if source: - download_name = self.db_cache[name].get_object(BibleMeta, - u'download name').value - meta_proxy = self.db_cache[name].get_object(BibleMeta, - u'proxy url') - web_bible = HTTPBible(self.parent, path=self.path, - file=filename, download_source=source.value, - download_name=download_name) - if meta_proxy: - web_bible.proxy_server = meta_proxy.value - self.db_cache[name] = web_bible + if not filename.startswith(u'old_database_'): + bible = BibleDB(self.parent, path=self.path, file=filename) + name = bible.get_name() + # Remove corrupted files. + if name is None: + delete_file(os.path.join(self.path, filename)) + continue + # Find old database versions + if bible.is_old_database(): + self.old_bible_databases.append([filename, name]) + bible.session.close() + continue + log.debug(u'Bible Name: "%s"', name) + self.db_cache[name] = bible + # Look to see if lazy load bible exists and get create getter. + source = self.db_cache[name].get_object(BibleMeta, + u'download source') + if source: + download_name = self.db_cache[name].get_object(BibleMeta, + u'download name').value + meta_proxy = self.db_cache[name].get_object(BibleMeta, + u'proxy url') + web_bible = HTTPBible(self.parent, path=self.path, + file=filename, download_source=source.value, + download_name=download_name) + if meta_proxy: + web_bible.proxy_server = meta_proxy.value + self.db_cache[name] = web_bible log.debug(u'Bibles reloaded') def set_process_dialog(self, wizard): From 729f38f1583c0ff2ba70099720d84894104afd93 Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Thu, 9 Jun 2011 17:17:04 -0400 Subject: [PATCH 2/3] Added code to close the oldBibleDB so it can be deleted after conversion --- openlp/plugins/bibles/forms/bibleupgradeform.py | 1 + openlp/plugins/bibles/lib/db.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/openlp/plugins/bibles/forms/bibleupgradeform.py b/openlp/plugins/bibles/forms/bibleupgradeform.py index 7913aac31..6d86851a0 100644 --- a/openlp/plugins/bibles/forms/bibleupgradeform.py +++ b/openlp/plugins/bibles/forms/bibleupgradeform.py @@ -732,6 +732,7 @@ class BibleUpgradeForm(OpenLPWizard): self.newbibles[number].session.commit() if not bible_failed: self.newbibles[number].create_meta(u'Version', name) + oldbible.close_connection() delete_file(os.path.join(self.path, filename[0])) self.incrementProgressBar(unicode(translate( 'BiblesPlugin.UpgradeWizardForm', diff --git a/openlp/plugins/bibles/lib/db.py b/openlp/plugins/bibles/lib/db.py index 41dc947f9..49488be0e 100644 --- a/openlp/plugins/bibles/lib/db.py +++ b/openlp/plugins/bibles/lib/db.py @@ -1101,3 +1101,7 @@ class OldBibleDB(QtCore.QObject, Manager): ] else: return None + + def close_connection(self): + self.cursor.close() + self.connection.close() From f0dde7353095f3d37681e10f00029d3d2421a81d Mon Sep 17 00:00:00 2001 From: Stevan Pettit Date: Thu, 9 Jun 2011 22:55:43 -0400 Subject: [PATCH 3/3] Remove previous change to skip old_database bibles --- openlp/plugins/bibles/lib/manager.py | 55 ++++++++++++++-------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/openlp/plugins/bibles/lib/manager.py b/openlp/plugins/bibles/lib/manager.py index 74e3cb11e..2a3858afc 100644 --- a/openlp/plugins/bibles/lib/manager.py +++ b/openlp/plugins/bibles/lib/manager.py @@ -147,34 +147,33 @@ class BibleManager(object): self.db_cache = {} self.old_bible_databases = [] for filename in files: - if not filename.startswith(u'old_database_'): - bible = BibleDB(self.parent, path=self.path, file=filename) - name = bible.get_name() - # Remove corrupted files. - if name is None: - delete_file(os.path.join(self.path, filename)) - continue - # Find old database versions - if bible.is_old_database(): - self.old_bible_databases.append([filename, name]) - bible.session.close() - continue - log.debug(u'Bible Name: "%s"', name) - self.db_cache[name] = bible - # Look to see if lazy load bible exists and get create getter. - source = self.db_cache[name].get_object(BibleMeta, - u'download source') - if source: - download_name = self.db_cache[name].get_object(BibleMeta, - u'download name').value - meta_proxy = self.db_cache[name].get_object(BibleMeta, - u'proxy url') - web_bible = HTTPBible(self.parent, path=self.path, - file=filename, download_source=source.value, - download_name=download_name) - if meta_proxy: - web_bible.proxy_server = meta_proxy.value - self.db_cache[name] = web_bible + bible = BibleDB(self.parent, path=self.path, file=filename) + name = bible.get_name() + # Remove corrupted files. + if name is None: + delete_file(os.path.join(self.path, filename)) + continue + # Find old database versions + if bible.is_old_database(): + self.old_bible_databases.append([filename, name]) + bible.session.close() + continue + log.debug(u'Bible Name: "%s"', name) + self.db_cache[name] = bible + # Look to see if lazy load bible exists and get create getter. + source = self.db_cache[name].get_object(BibleMeta, + u'download source') + if source: + download_name = self.db_cache[name].get_object(BibleMeta, + u'download name').value + meta_proxy = self.db_cache[name].get_object(BibleMeta, + u'proxy url') + web_bible = HTTPBible(self.parent, path=self.path, + file=filename, download_source=source.value, + download_name=download_name) + if meta_proxy: + web_bible.proxy_server = meta_proxy.value + self.db_cache[name] = web_bible log.debug(u'Bibles reloaded') def set_process_dialog(self, wizard):