From a85ac03517bb7b07cb59539e1b427672d8fa6939 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Thu, 9 Dec 2021 22:09:40 -0500 Subject: [PATCH] db: Occasionally optimize the database I do this whenever we commit during scanning, and during application shutdown. Signed-off-by: Anna Schumaker --- db/sql.py | 4 ++++ scanner/task.py | 4 +++- ui/__init__.py | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/db/sql.py b/db/sql.py index a3de366..72ee22e 100644 --- a/db/sql.py +++ b/db/sql.py @@ -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") diff --git a/scanner/task.py b/scanner/task.py index 42defd9..be0070d 100644 --- a/scanner/task.py +++ b/scanner/task.py @@ -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): diff --git a/ui/__init__.py b/ui/__init__.py index adae7df..52927a5 100644 --- a/ui/__init__.py +++ b/ui/__init__.py @@ -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()