database migration in 8.3.0: missing person

Maik Qualmann metzpinguin at gmail.com
Mon Apr 29 21:04:53 BST 2024


I reply here in the thread so that everyone has the solution. You have LIssa 
and Lissa as tags under people in the database. So they differ in the "I" in 
the upper/lower case. This cannot be easily handled by MySQL. We have a bug 
report about this, we would have to save these text entries in binary mode, 
but this has other disadvantages. We already do it for the file name.

So you can easily fix it since there are no images associated with "LIssa", 
just delete "LIssa" under people in the tags sidebar. Now you can migrate the 
database to MySQL again.

Maik

Am Montag, 29. April 2024, 20:53:01 MESZ schrieben Sie:
> If a data record is not accepted, it is probably not valid and is already
> broken in the SQLite database. Because the image id is not valid etc. If you
> want, create a ZIP file of your digiKam4.db and send it to me, I'll take a
> look at it.
> 
> Maik
> 
> Am Montag, 29. April 2024, 20:38:15 MESZ schrieb Marcus Winston:
> > Follow-up/update:
> > 
> > I launched digiKam with all logging enabled, then activated database
> > migration again.
> > 
> > I see in the log where the TagProperties are migrated. In the source
> > data (SQLite) there are 384 rows; in the MySQL Server (actually running
> > mariadb 10), there are 382 rows. It doesn't quite follow, as there are
> > three rows of data for the person who is missing: a 'person',
> > faceEngineID, and faceEngineUuid. In any case, the log file lists those
> > rows of data, but those rows do not show up in the actual MySQL Server
> > database (mariadb). That is, tagid=41 does not exist in the SQL Server
> > dB. See log below.
> > 
> > Digikam::CoreDbCopyManager::copyTable: Core database: query
> > isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "tagid" ] value [ QVariant(qlonglong, 41) ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "property" ] value [ QVariant(QString, "person") ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "value" ] value [ QVariant(QString, "Lissa") ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: query
> > isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "tagid" ] value [ QVariant(qlonglong, 41) ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "property" ] value [ QVariant(QString, "faceEngineId") ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "value" ] value [ QVariant(QString, "Lissa") ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: query
> > isOnValidRow [ true ] isActive [ true ] result size: [ -1 ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "tagid" ] value [ QVariant(qlonglong, 41) ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "property" ] value [ QVariant(QString, "faceEngineUuid") ]
> > Digikam::CoreDbCopyManager::copyTable: Core database: column: [
> > "value" ] value [ QVariant(QString,
> > "{ef03ec83-b6ec-4449-b87f-b35fd8ade955}") ]
> > 
> > So, either the actual SQL command to write that data wasn't sent to the
> > server, or the server failed to write the data. I'm not /that/ much of a
> > SQL/mariadb expert to be able to dig into this. If anyone has
> > suggestions, I'd certainly welcome them.
> > 
> > MarcusW
> > 
> > On 4/29/24 06:08, Marcus Winston wrote:
> > > If, by "first original", you mean this is the first person I named, or
> > > identified, then yes, it's possible. I don't quite remember. It's
> > > definitely not the last. It's also not the first person in the
> > > recognition.db file.
> > > 
> > > -Marcus
> > > 
> > > On 4/29/24 00:21, Paul A. Norman wrote:
> > >> Dear Marcus,
> > >> 
> > >> Just checking - can you recall whether that 'person' was entered as
> > >> your first original, or even last entry?
> > >> Or just somewhere along the way sometime?
> > >> 
> > >> -Paul
> > >> -----------------------------------------------------------------------
> > >> -
> > >> https://PaulANorman.info <https://PaulANorman.info>
> > >> 
> > >> 
> > >> On 29 April 2024 4:00:25 pm NZST, Marcus Winston
> > >> 
> > >> <marcus at thechocolatehouse.net> wrote:
> > >>     I did see that online doc, and followed it. What is confusing to me
> > >>     is
> > >>     whether the faces data is, or is not, "migrate-able". That is, when
> > >>     moving to MySQL Server, is all my previous face information
> > >>     essentially
> > >>     thrown away? When I read "all other databases have to be rebuilt as
> > >>     post-processing...", I'm not sure exactly what that means.
> > >>     
> > >>     The Core database seems to have included all the face information,
> > >>     except for one person (one face). Rebuilding the faces database did
> > >>     not
> > >>     change that. Hence, I'm a little confused.
> > >>     
> > >>     -MarcusW
> > >>     
> > >>     On 4/28/24 20:54, Gilles Caulier wrote:
> > >>         Hi, See explanation from the online doc:
> > >>         https://docs.digikam.org/en/setup_application/database_settings
> > >>         .h
> > >>         tml#database-migration Best Gilles Caulier Le lun. 29 avr. 2024
> > >>         à
> > >>         02:59, Marcus
> > >>         
> > >>         Winston <marcus at thechocolatehouse.net> a écrit :
> > >>             Hello all, I'm using digiKam 8.3.0 on Linux (AppImage),
> > >>             and migrating the database to MySQL Server on a NAS. In
> > >>             the process, I have found a "missing person". That is,
> > >>             one of the people in my "database" (I use that term
> > >>             loosely, as I'm not sure the right word) is missing.
> > >>             There are 2700 pictures with this person's face
> > >>             identified in the SQLite version of "database". In the
> > >>             MySQL, after migrating it to the NAS, this person is
> > >>             entirely missing. All face tags with this person are
> > >>             gone. Is there any way to debug this? I don't really want
> > >>             to go through and manually re-train digiKam, and manually
> > >>             re-label a bunch of photos. It took me several hours to
> > >>             train it so far. Thanks. MarcusW






More information about the Digikam-users mailing list