J'ai décidé que je ne suis pas friand de l'archivage automatique et le renommage fourni par Mendeley, mais j'ai trouvé qu'il garde la trace de tout dans une base de données sqlite que je peux facilement lire et modifier à partir de Python. Ma question est, si je vais itérer sur les lignes d'une table contenant des chemins de fichier et des hachages qui servent d'identificateurs utilisés ailleurs dans la base de données, quel est le modèle approprié à utiliser pour mettre à jour les chemins au fur et à mesure que je me déplace, je vérifie si le fichier doit être renommé, puis je veux mettre à jour la ligne dans la base de données lorsque je déplace le fichier.Examiner puis mettre à jour les lignes dans sqlite avec Python
J'ai commencé à assembler un peu de Python pour cela, mais il me semble que je devrais probablement faire une requête à l'avance pour obtenir toutes les lignes que je vais parcourir, et ensuite faire des instructions REPLACE ou UPDATE pour les fichiers, j'ai décidé de déménager.
Je ne suis pas familier avec les internes du module sqlite3, mais je suppose que ce serait une mauvaise idée de faire REPLACE/UPDATEs tout en itérant sur le curseur utilisé pour la sélection d'origine.
Existe-t-il une autre façon de faire cela qui ne nécessite pas de revenir avec REPLACE/UPDATEs? J'ai besoin de faire des requêtes à partir d'autres tables, en utilisant le hachage du fichier pour obtenir d'autres métadonnées afin de construire le renommer.
Merci pour les notes à ce sujet. Je m'inquiétais plus de la correction que de la performance. Je suppose que l'on aurait besoin d'utiliser un plus haut niveau d'abstraction, comme un ORM pour pouvoir faire ce que je voulais initialement, au moins du point de vue du code Python.Au final, j'ai remarqué pour Mendeley au moins que je n'avais pas vraiment besoin de mettre à jour les noms de fichiers dans la base de données car si on renomme le fichier et demande à Mendeley de regarder le dossier le contenant, il mettra à jour les chemins fichiers avec le même hachage que le chemin de fichier précédent. –