Bug 461348 - Does not start because - Failed to update the database schema from version 13 to version 14.
Summary: Does not start because - Failed to update the database schema from version 13...
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Schema (show other bugs)
Version: 7.8.0
Platform: Kubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-11-03 09:52 UTC by frans
Modified: 2022-11-04 12:09 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 7.9.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description frans 2022-11-03 09:52:00 UTC
After upgrading to kubuntu 22.04, digikam no longer starts and gets stuck on a message box:

Failed to update the database schema from version 13 to version 14.
Please read the error messages printed on the console and report this error as a bug at bugs.kde.org.

Console:
digikam.coredb: Core database: cannot process schema initialization

Using a MariaDB on a local NAS - connection checks reports OK  


STEPS TO REPRODUCE
1. Kubuntu 22.04
2. install digikam snap
3. start on a remote database

OBSERVED RESULT
Does not start after setting the database

EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma:  
(available in About System)
KDE Plasma Version: 5.24.6
KDE Frameworks Version: 5.92.0
Qt Version: 5.15.3

ADDITIONAL INFORMATION
Comment 1 caulier.gilles 2022-11-03 10:04:38 UTC
I recommend to try 7.9.0 pre-release which is a maintenance version, not yet published, but including bug fix only :

https://files.kde.org/digikam/

The AppImage Linux bundle must work as expected under Kubuntu.

Best

Gilles Caulier
Comment 2 Maik Qualmann 2022-11-03 10:11:51 UTC
From V13 to V14 was a simple update, just added a DateTime column to the Albums table.
Post the log from the terminal as described here:

https://www.digikam.org/contribute/

Maik
Comment 3 frans 2022-11-03 14:43:26 UTC
(In reply to Maik Qualmann from comment #2)
> From V13 to V14 was a simple update, just added a DateTime column to the
> Albums table.
> Post the log from the terminal as described here:
> 
> https://www.digikam.org/contribute/
> 
> Maik

This is the complete log
frans@Beest:~/Downloads$ ./digiKam-7.9.0-20221030T175249-x86-64-debug.appimage 
-- digiKam Linux AppImage Bundle
-- Use 'help' as CLI argument to know all available options for digiKam application.
-- Notes: to integrate this bundle to your desktop, use AppImageLauncher.
--        to enable all debug messages on the console, use 'export QT_LOGGING_RULES="digikam*=true"'.
-- Detected host Linux ubuntu-64-22.4
-- AppImage mounted directory: /tmp/.mount_digiKahcoO52
Check library libudev.so.0
Check library libxcb-dri3.so.0
Check library libcrypto.so.1.1
Check library libssl.so.1.1
Check library libnss3.so
Check library libnssutil3.so
Check library libsmime3.so
Check library libpango-1.0.so.0
Check library libpangocairo-1.0.so.0
Check library libgmodule-2.0.so.0
-- Preloading shared libs: :/tmp/.mount_digiKahcoO52/usr/lib/libavif.so.13:/usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0:/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1:/usr/lib/x86_64-linux-gnu/libssl.so.1.1:/usr/lib/x86_64-linux-gnu/libnss3.so:/usr/lib/x86_64-linux-gnu/libnssutil3.so:/usr/lib/x86_64-linux-gnu/libsmime3.so:/usr/lib/x86_64-linux-gnu/libpango-1.0.so.0:/usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0:/usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0
Digikam::DXmlGuiWindow::setupIconTheme: Breeze icons resource file found
Digikam::DXmlGuiWindow::setupIconTheme: Breeze-dark icons resource file found
Digikam::setupKSycocaDatabaseFile: Set KSycoca to file: "/home/frans/.cache/ksycoca5_en_MHJxbUEetAAm+p0deqzFWbReBGo="
Digikam::unloadQtTranslationFiles: Qt standard translations removed: 6
Digikam::loadStdQtTranslationFiles: Qt standard translations path: "/tmp/.mount_digiKahcoO52/usr/share/digikam/translations"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" from catalog "qt"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" from catalog "qtbase"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" from catalog "qt_help"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" from catalog "qtdeclarative"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" from catalog "qtquickcontrols"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" from catalog "qtquickcontrols2"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" from catalog "qtmultimedia"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" from catalog "qtwebengine"
Digikam::loadStdQtTranslationFiles: Loaded Qt standard translations "en_US" 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::ApplicationSettings::setApplicationStyle: Switch to widget style:  "breeze"
Digikam::ApplicationSettings::setApplicationFont: Switch to application font:  QFont(Noto Sans,10,-1,0,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-thumbnails"
   DB Face Name:              "digikam-recognition"
   DB Similarity Name:        "digikam"
   Connect Options:           ""
   Host Name:                 "192.168.2.13"
   Host port:                 3307
   Internal Server:           false
   Internal Server Path:      ""
   Internal Server Admin Cmd: ""
   Internal Server Serv Cmd:  ""
   Internal Server Init Cmd:  ""
   Username:                  "Frans"
   Password:                  "XXXXXXXXXXXX"

Digikam::DbEngineConfigSettingsLoader::readConfig: Loading SQL code from config file "/tmp/.mount_digiKahcoO52/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  13
Digikam::CoreDbSchemaUpdater::makeUpdates: Core database: makeUpdates  13  to  15
Digikam::BdEngineBackendPrivate::debugOutputFailedQuery: Failure executing query:
 "" 
Bound values:  ()Error messages: "QMYSQL: Unable to execute query" "Duplicate column name 'modificationDate'" "1060" 2 

Digikam::BdEngineBackend::execDBAction: Error while executing DBAction [ "UpdateSchemaFromV13ToV14" ] Statement [ "ALTER TABLE Albums ADD modificationDate DATETIME;" ]
Digikam::CoreDbSchemaUpdater::performUpdateToVersion: Core database: schema update to V 14 failed!
Digikam::CoreDbAccess::checkReadyForUse: Core database: cannot process schema initialization

How to proceed on Unable to exequte query ?
Comment 4 Maik Qualmann 2022-11-03 17:47:50 UTC
Well, the "modificationDate" column we want to add already exists. Possible cause, you have tried a beta version of digiKam or the first start of the "new" digiKam version failed and the version number of the database was not updated. Well, this update was done a year ago in the then current digiKam version, we can't really fix it here on digiKam site. It could also be due to the Kubuntu Snap package using a sandbox. This also makes it difficult for us to exchange/modify a file so that we can finish the update.

Can you run a SQL command on your NAS if I give you the commands?

Maik
Comment 5 Maik Qualmann 2022-11-03 17:54:23 UTC
Try this in a terminal:

mysql -u Frans -h 192.168.2.13 -p
(password query)

USE digikam;
ALTER TABLE Albums DROP COLUMN modificationDate;

With "\q" you can exit mysql, try to start digiKam again.

Maik
Comment 6 frans 2022-11-04 10:13:59 UTC
Thank you very much, digikam is again up to par. I think this was indeed caused by an aborted first time run of the snap, perhaps future scripts can check if the a new column is not already present :)
Anyway I am a happy bee again, thanks again
Comment 7 Maik Qualmann 2022-11-04 12:09:45 UTC
For MariaDB, the query whether the column exists already exists for ALTER TABLE. A procedure would have to be written for MySQL (Oracle) that queries the existence of the column via the table schema, which would be a bit more complex. Normally, nothing goes wrong with this simple update. We already know many problems with the Ubuntu Snap package, it's actually useless for digiKam. You should look for an alternative. Either our AppImage or there is a private repository with a current digiKam version. I can't say how well it works though.

Maik