database migration in 8.3.0: missing person

Maik Qualmann metzpinguin at gmail.com
Mon Apr 29 19:53:01 BST 2024


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