database migration in 8.3.0: missing person

Marcus Winston marcus at thechocolatehouse.net
Tue Apr 30 00:10:58 BST 2024


Thank you!

Deleting that erroneous extra tag enabled proper dB migration.

-marcus

On 4/29/24 13:04, Maik Qualmann wrote:
> 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