db: Occasionally optimize the database

I do this whenever we commit during scanning, and during application
shutdown.

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-12-09 22:09:40 -05:00
parent 853594fc26
commit a85ac03517
3 changed files with 12 additions and 1 deletions

View File

@ -9,3 +9,7 @@ Connection.row_factory = sqlite3.Row
commit = Connection.commit
execute = Connection.execute
def optimize():
Connection.execute("PRAGMA analysis_limit=1000")
Connection.execute("PRAGMA optimize")

View File

@ -9,7 +9,9 @@ class Task(GObject.GObject):
class CommitTask(Task):
def run_task(self): db.sql.commit()
def run_task(self):
db.sql.commit()
db.sql.optimize()
class FileTask(Task):

View File

@ -3,6 +3,7 @@ from . import icons
from . import window
from gi.repository import Gtk
import audio
import db
class EmmentalApplication(Gtk.Application):
def __init__(self, *args, **kwargs):
@ -16,4 +17,8 @@ class EmmentalApplication(Gtk.Application):
Gtk.Application.do_startup(self)
self.add_window(self.window)
def do_shutdown(self):
db.sql.optimize()
Gtk.Application.do_shutdown(self)
Application = EmmentalApplication()