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()