def toolbar_icon_clicked(self, widget, movie):
#
# remove unused posters
#
session = self.db.Session()
delete_posters = delete(posters_table)
delete_posters = delete_posters.where(not_(exists([movies_table.c.movie_id], and_(posters_table.c.md5sum==movies_table.c.poster_md5)).correlate(posters_table)))
log.debug(delete_posters)
session.execute(delete_posters)
session.commit()
#
# compressing sqlite databases
#
if self.app.config.get('type', 'sqlite', section='database') == 'sqlite':
databasefilename = "%s.db" % os.path.join(self.app.locations['home'], self.app.config.get('name', section='database'))
pagesize = gutils.get_filesystem_pagesize(databasefilename)
# works since sqlite 3.5.8
# python 2.5 doesn't include 3.x but perhaps in future versions
# another way is the installation of pysqlite2 with 2.5.6/2.6.0 or higher
try:
from pysqlite2 import dbapi2 as sqlite3
con = sqlite3.connect(databasefilename)
try:
con.isolation_level = None
cur = con.cursor()
cur.execute('PRAGMA page_size=' + str(pagesize))
cur.execute('VACUUM;')
finally:
con.close()
except:
log.error('fallback to default driver')
self.app.db.engine.execute('PRAGMA page_size=' + str(pagesize))
self.app.db.engine.execute('VACUUM;')
gutils.info(_("Finished"))
评论列表
文章目录