From 4bf0cdf580c8f8b924b36b1b7e453ca045691c14 Mon Sep 17 00:00:00 2001 From: emeric Date: Fri, 1 Dec 2023 08:53:50 +0100 Subject: [PATCH] Fixed regression that prevent new installs to work. fixes #385 --- src/libs/database/impl/ScanSettings.cpp | 10 ++++++++++ src/libs/database/impl/Session.cpp | 6 ++++++ 2 files changed, 16 insertions(+) diff --git a/src/libs/database/impl/ScanSettings.cpp b/src/libs/database/impl/ScanSettings.cpp index 43a1eb5c..5e5f7cc1 100644 --- a/src/libs/database/impl/ScanSettings.cpp +++ b/src/libs/database/impl/ScanSettings.cpp @@ -30,6 +30,16 @@ namespace Database { + void ScanSettings::init(Session& session) + { + session.checkWriteTransaction(); + + if (pointer settings{ get(session) }) + return; + + session.getDboSession().add(std::make_unique()); + } + ScanSettings::pointer ScanSettings::get(Session& session) { session.checkReadTransaction(); diff --git a/src/libs/database/impl/Session.cpp b/src/libs/database/impl/Session.cpp index 1a880c11..06ce0151 100644 --- a/src/libs/database/impl/Session.cpp +++ b/src/libs/database/impl/Session.cpp @@ -171,6 +171,12 @@ namespace Database _session.execute("CREATE INDEX IF NOT EXISTS starred_track_user_backend_idx ON starred_track(user_id,backend)"); _session.execute("CREATE INDEX IF NOT EXISTS starred_track_track_user_backend_idx ON starred_track(track_id,user_id,backend)"); } + + // Singletons + { + auto uniqueTransaction{ createWriteTransaction() }; + ScanSettings::init(*this); + } } void Session::analyze()