File indexing completed on 2025-01-05 03:54:14
0001 /* ============================================================ 0002 * 0003 * This file is a part of digiKam project 0004 * https://www.digikam.org 0005 * 0006 * Date : 2017-06-30 0007 * Description : Similarity DB schema update 0008 * 0009 * SPDX-FileCopyrightText: 2007-2009 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de> 0010 * SPDX-FileCopyrightText: 2010-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0011 * SPDX-FileCopyrightText: 2017 by Swati Lodha <swatilodha27 at gmail dot com> 0012 * SPDX-FileCopyrightText: 2018 by Mario Frank <mario dot frank at uni minus potsdam dot de> 0013 * 0014 * SPDX-License-Identifier: GPL-2.0-or-later 0015 * 0016 * ============================================================ */ 0017 0018 #ifndef DIGIKAM_SIMILARITY_DB_SCHEMA_UPDATER_H 0019 #define DIGIKAM_SIMILARITY_DB_SCHEMA_UPDATER_H 0020 0021 namespace Digikam 0022 { 0023 0024 class SimilarityDbAccess; 0025 class InitializationObserver; 0026 0027 class SimilarityDbSchemaUpdater 0028 { 0029 public: 0030 0031 static int schemaVersion(); 0032 0033 public: 0034 0035 explicit SimilarityDbSchemaUpdater(SimilarityDbAccess* const dbAccess); 0036 ~SimilarityDbSchemaUpdater(); 0037 0038 bool update(); 0039 void setObserver(InitializationObserver* const observer); 0040 0041 private: 0042 0043 bool startUpdates(); 0044 bool makeUpdates(); 0045 bool createDatabase(); 0046 bool createTables(); 0047 bool createIndices(); 0048 bool createTriggers(); 0049 bool updateV1ToV2(); 0050 0051 private: 0052 0053 // Disable 0054 SimilarityDbSchemaUpdater(const SimilarityDbSchemaUpdater&) = delete; 0055 SimilarityDbSchemaUpdater& operator=(const SimilarityDbSchemaUpdater&) = delete; 0056 0057 class Private; 0058 Private* const d; 0059 }; 0060 0061 } // namespace Digikam 0062 0063 #endif // DIGIKAM_SIMILARITY_DB_SCHEMA_UPDATER_H