Created attachment 145074 [details] Digikam database settings SUMMARY *** Changing from "Digikam-7.2.0.appimage" using "internal mysql" engine (binary "mysql_install_db") to "Digikam-7.3.0" rpm, sharing setting (same PC and user) I got at console: "digikam.coredb: Core database: cannot process schema initialization QThreadStorage: Thread 0x7fe6d37b2240 exited after QThreadStorage 13 destroyed" *** STEPS TO REPRODUCE 1. Launch installed (from official repositories) digikam 7.3 OBSERVED RESULT In desktop: Digikam shows a window "Failed to upgrade the database schema from version 12 to version 13. Read the error messages written to the console and report the error to bugs.kde.org" EXPECTED RESULT To update database and run without issues SOFTWARE/OS VERSIONS Operating System: openSUSE Tumbleweed 20211203 KDE Plasma Version: 5.23.4 KDE Frameworks Version: 5.88.0 Qt Version: 5.15.2 Kernel Version: 5.15.5-1-default (64-bit) Graphics Platform: X11 Processors: 8 × Intel® Core™ i7-9700K CPU @ 3.60GHz Memory: 15.4 GiB of RAM Graphics Processor: NVIDIA GeForce RTX 2060/PCIe/SSE2 ADDITIONAL INFORMATION Digikam closes after click on "Accept" on error message window.
Hi and happy new year, See bug https://bugs.kde.org/show_bug.cgi?id=440212. This have been fixed with 7.4.0. We recommend to use pre-release 7.5.0 Linux AppImage bundle available here : https://files.kde.org/digikam/ Best Regards Gilles Caulier
Yes, you need at least digiKam-7.4.0 to solve the problem. The version reads the MySQL Error Log if the update fails and will start upgrading the database to the new MySQL Server version at the next start. To understand it, MariaDB has made major changes to the table structure in the database. As long as no changes are made to the database, there is no problem. In the case of a change to the tables, it will fail. For the system MySQL database, a Cron Job is executed which executes the upgrade. In the case of the MYSQL database managed by Digikam, this must either be done manually (not quite simple) or automatically from digiKam-7.4.0 or newer. Maik
(In reply to Maik Qualmann from comment #2) > Yes, you need at least digiKam-7.4.0 to solve the problem. The version reads > the MySQL Error Log if the update fails and will start upgrading the > database to the new MySQL Server version at the next start. > To understand it, MariaDB has made major changes to the table structure in > the database. As long as no changes are made to the database, there is no > problem. In the case of a change to the tables, it will fail. For the system > MySQL database, a Cron Job is executed which executes the upgrade. In the > case of the MYSQL database managed by Digikam, this must either be done > manually (not quite simple) or automatically from digiKam-7.4.0 or newer. > > Maik Ok. I'll try 7.4.0 stable, cause my database is >70k images and I can't risk there being a bug and having to rescan all the images again (it takes many hours). I will report back here on how it went. Thank you
You should make a backup copy of the folder in which your internal MySQL database is located. Maik
(In reply to caulier.gilles from comment #1) > Hi and happy new year, > > See bug https://bugs.kde.org/show_bug.cgi?id=440212. > > This have been fixed with 7.4.0. > > We recommend to use pre-release 7.5.0 Linux AppImage bundle available here : > > https://files.kde.org/digikam/ > > Best Regards > > Gilles Caulier Not working. Neither version 7.4 nor version 7.5. Both, give exactly two windows with same error.
Created attachment 145128 [details] Error showed after launch 7.3, 7.4 or 7.5 digikam versions Tried both AppImage versions, 7.4 and 7.5, without success.
(In reply to Maik Qualmann from comment #4) > You should make a backup copy of the folder in which your internal MySQL > database is located. > > Maik I don't know where is it!!! It didn't ask me where database should be located when I selected "MySQL internal". I guess it should be in Digikam folder(In reply to Maik Qualmann from comment #4) > You should make a backup copy of the folder in which your internal MySQL > database is located. > > Maik Thank you!!! I just did it now as you suggested.
digiKam asks for the path when creating the internal database. If you haven't changed anything, there is a hidden folder in your images directory. Start digiKam in the Terminal / Console and activate the debug output beforehand with: export QT_LOGGING_RULES="digikam.*=true" Give us all the messages from the Ternimal / Console. Maik
Sorry for the delay in replying, but user was on holiday. This is the output: -- Preloading shared libs: :/usr/lib64/libxcb-dri3.so.0:/usr/lib64/libcrypto.so.1.1:/usr/lib64/libssl.so.1.1 Digikam::DXmlGuiWindow::setupIconTheme: Breeze icons resource file found Digikam::DXmlGuiWindow::setupIconTheme: Breeze-dark icons resource file found Digikam::unloadQtTranslationFiles: Qt standard translations removed: 17 Digikam::loadStdQtTranslationFiles: Qt standard translations path: "/tmp/.mount_digiKa6dKCiy/usr/share/digikam/translations" Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "es_ES" from catalog "qt" Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "es_ES" from catalog "qtbase" Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "es_ES" from catalog "qt_help" Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "es_ES" from catalog "qtdeclarative" Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "es_ES" from catalog "qtmultimedia" Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "es_ES" from catalog "qtwebengine" Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "es_ES" from catalog "qtxmlpatterns" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "en" from catalog "kcoreaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "en" from catalog "kwidgetsaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kauth5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kbookmarks5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcodecs5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcompletion5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kconfig5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcoreaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kdbusaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kde5_xml_mimetypes" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kglobalaccel5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kitemviews5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kwidgetsaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kwindowsystem5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "solid5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "marble_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kauth5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kbookmarks5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcodecs5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcompletion5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kconfig5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcoreaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kdbusaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kde5_xml_mimetypes" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kglobalaccel5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kitemviews5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kwidgetsaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kwindowsystem5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "solid5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "marble_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kauth5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kbookmarks5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcodecs5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcompletion5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kconfig5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcoreaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kdbusaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kde5_xml_mimetypes" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kglobalaccel5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kitemviews5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kwidgetsaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kwindowsystem5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "solid5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "marble_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kauth5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kbookmarks5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcodecs5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcompletion5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kconfig5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kcoreaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kdbusaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kde5_xml_mimetypes" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kglobalaccel5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kitemviews5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kwidgetsaddons5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "kwindowsystem5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "solid5_qt" Digikam::loadEcmQtTranslationFiles: Loaded Qt ECM translations "es" from catalog "marble_qt" Digikam::ApplicationSettings::setApplicationStyle: Switch to widget style: "" Digikam::ApplicationSettings::setApplicationFont: Switch to application font: QFont(Noto Sans,10,-1,5,50,0,0,0,0,0) Digikam::AlbumWatch::AlbumWatch: AlbumWatch use QFileSystemWatcher Digikam::AlbumManager::setDatabase: Database Parameters: Type: "QMYSQL" DB Core Name: "digikam" DB Thumbs Name: "digikam" DB Face Name: "digikam" DB Similarity Name: "digikam" Connect Options: "UNIX_SOCKET=/home/user/.local/share/digikam/db_misc/mysql.socket" Host Name: "" Host port: -1 Internal Server: true Internal Server Path: "/home/user" Internal Server Admin Cmd: "mysqladmin" Internal Server Serv Cmd: "/usr/sbin/mysqld" Internal Server Init Cmd: "mysql_install_db" Username: "root" Password: "" Digikam::DatabaseServer::DatabaseServer: Database Parameters: Type: "QMYSQL" DB Core Name: "digikam" DB Thumbs Name: "digikam" DB Face Name: "digikam" DB Similarity Name: "digikam" Connect Options: "UNIX_SOCKET=/home/user/.local/share/digikam/db_misc/mysql.socket" Host Name: "" Host port: -1 Internal Server: true Internal Server Path: "/home/user" Internal Server Admin Cmd: "mysqladmin" Internal Server Serv Cmd: "/usr/sbin/mysqld" Internal Server Init Cmd: "mysql_install_db" Username: "root" Password: "" Digikam::DatabaseServer::DatabaseServer: Internal Server data path: "/home/user/.mysql.digikam/db_data" Digikam::DatabaseServer::initMysqlConfig: The mysql configuration was already up-to-date: "/home/user/.local/share/digikam/mysql.conf" Digikam::adjustedEnvironmentForAppImage: Adjusting environment variables for AppImage bundle Digikam::DatabaseServer::startMysqlServer: Database server: "/usr/sbin/mysqld" ("--defaults-file=/home/user/.local/share/digikam/mysql.conf", "--datadir=/home/user/.mysql.digikam/db_data", "--socket=/home/user/.local/share/digikam/db_misc/mysql.socket") Digikam::DatabaseServerStarter::startServerManagerProcess: Internal database server started Digikam::DatabaseServer::run: Running 0 seconds... Digikam::DbEngineConfigSettingsLoader::readConfig: Loading SQL code from config file "/tmp/.mount_digiKa6dKCiy/usr/share/digikam/database/dbconfig.xml" Digikam::DbEngineConfigSettingsLoader::readConfig: Checking XML version ID => expected: 3 found: 3 Digikam::CoreDbSchemaUpdater::update: Core database: running schema update Digikam::CoreDbSchemaUpdater::startUpdates: Core database: have a structure version 12 Digikam::CoreDbSchemaUpdater::makeUpdates: Core database: makeUpdates 12 to 15 Digikam::BdEngineBackendPrivate::debugOutputFailedQuery: Failure executing query: "" Error messages: "QMYSQL: No es posible ejecutar la consulta" "Column count of mysql.proc is wrong. Expected 21, found 20. Created with MariaDB 100215, now running 100605. Please use mariadb-upgrade to fix this error" "1558" 2 Bound values: () Digikam::BdEngineBackend::execDBAction: Error while executing DBAction [ "UpdateSchemaFromV12ToV13" ] Statement [ "\n DROP PROCEDURE IF EXISTS create_index_if_not_exists;\n " ] Digikam::CoreDbSchemaUpdater::performUpdateToVersion: Core database: schema update to V 13 failed! Digikam::CoreDbAccess::checkReadyForUse: Core database: cannot process schema initialization Digikam::KMemoryInfo::update: KMemoryInfo: Platform identified : "LINUX" Digikam::KMemoryInfo::bytes: KMemoryInfo: TotalRam: 16675045376 Digikam::LoadingCache::setCacheSize: Allowing a cache size of 400 MB Digikam::adjustedEnvironmentForAppImage: Adjusting environment variables for AppImage bundle Digikam::DatabaseServer::run: Shutting down database server Digikam::DatabaseServerStarter::stopServerManagerProcess: Internal database server stopped
Ok, the problem is clear that digiKam does not recognize the problem in the error log, MariaDB has changed the text from "run mysql_upgrade" to "use mariadb-upgrade". That's not a problem fixing it. But you have another problem, you shouldn't be using MariaDB 10.6.x. MariaDB > 10.5.x needs a customized Qt SQL driver, which is probably not yet included in the AppImage. It will crash etc. Maik
Maik, AppImage is compiled with Mageia 7 which is not maintained since few months. I'm sure that it's an older Mariadb version installed used to compile Qt 5.15.2 SQL driver. Gilles
(In reply to Maik Qualmann from comment #10) > But you have another problem, you shouldn't be using MariaDB 10.6.x. MariaDB > > 10.5.x needs a customized Qt SQL driver, which is probably not yet > included in the AppImage. It will crash etc. > > Maik I didn't choose to install any version of MariaDB. I supposed that selecting "Internal MySQL", Digikam will use a packetized version of MySQL, irrespective of whether the user has MySQL or MariaDB installed. So, am I wrong in understanding that selecting "internal MySQL" means that Digikam will use its own internal version of MySQL? If I'm wrong, please, change that text of "Internal MySQL", cause it is confuse. What must I do then? Uninstall MySQL and install MariaDB 10.5.x?
Git commit f1c3af7ff8dffd7f70f124c0579a0c3fa204a1b6 by Maik Qualmann. Committed on 11/01/2022 at 18:13. Pushed by mqualmann into branch 'master'. check for new MariaDB message in the error log to upgrade M +3 -2 core/libs/database/server/databaseserver.cpp https://invent.kde.org/graphics/digikam/commit/f1c3af7ff8dffd7f70f124c0579a0c3fa204a1b6
If I'm not mistaken, the AppImage does not contain a MariaDB server. Only in the MacOS version does the bundle contain the MariaDB server. In the Windows and Linux AppImage, the MariaDB servers found are used by the system. Therefore it is problematic to use MariaDB 10.6.x here. Here under openSUSE I'm using MariaDB 10.6.x, but the Qt packages are patched accordingly, at least I don't have any crashes. I'm search for the story when the problem with the current MariaDB in Archlinux first appeared. To my last patch: I can now update my old test internal DB from version 7 to 15, the upgrade was executed. Maik
Maik, You are right. - AppImage : no mariadb (but it can be added easily) - MacOS : mariadb 10.5 is present to work with Qt 5.15.2 - Windows : no mariadb (in fact mxe do not have a mariadb package, and i try to cross compile without success) Gilles
Version 7.5.0 solved issue THANKS