Skip to content

Migration TaxRef v17 problème conflits #527

@jpm-cbna

Description

@jpm-cbna

Lors de la migration de TaxRef v17, nous obtenons 48 lignes avec pour valeur dans le champ action Conflicts with attributes : .... Or, pour 30 d'entres elles, les conflits en question n'en sont pas mais correspondent plutôt au cas 4 "split and merge" bien que le script détecte ces lignes en tant que cas n°3 "merge".
La différence par rapport au schéma c'est que le cd_ref2 continue d'exister dans la nouvelle version de TaxRef, il ne disparaît pas. C'est seulement un cd_nom (ex. cd_nom4) correspondant à un synonyme du nom retenu (cd_ref2) qui est transféré vers un cd_ref déjà existant (cd_ref1).

Schéma représentant le cas en question

unnamed
Dans ce schéma, il faut considérer que "cd_nom1 = cd_ref1" et que "cd_nom5 = cd_ref5".
Dans tous les cas en question, nous avons des attributs associés aux cd_ref1 et au cd_ref5.
Dans ce cas là, il ne devrait pas y avoir de conflits liés aux attributs et/ou médias et le cd_nom4 devrait simplement changer de cd_ref.

Exemple concret

Et une image contenant les lignes de la table tmp_taxref_changes.comp_grap correspondant à un exemple du problème:
unnamed
Dans cet exemple, nous avons 2 cd_ref 80988 (Ajuga pyramidalis) et 80990 (Ajuga reptans) qui sont tous les deux existants dans TaxRef v16 et v17 (pas de changement de cd_ref entre les deux versions). Le cd_ref 80990 a seulement un cd_nom (80985) qui est transféré dans la grappe du cd_ref 80988.

Le problème c'est que la colonne "action" contient des "Conflicts with attributes : " qui ne devraient pas exister puisque les cd_ref ne changent pas.

Proposition de solution

Il faudrait juste avant la détection des "Conlicts with attributes : ..." repérer les cas en question est définir l'action à Do not change attributes and media.

Il me semble également qu'il faudrait ignorer les cas ou i_cd_ref = f_cd_ref lors de la détection des conflits en ajoutant une clause i_cd_ref != f_cd_ref au WHERE.

Enfin, bien que les modifications ci-dessus semblent suffire, il faudrait peut être également ajouter une clause AND action IS NULL dans le WHERE de la requête détection les conflits.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions