Forum darktable FR

Version complète : Déplacer sa collection d'images sur un autre répertoire
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
C'est l'histoire d'un jeune photographe fou qui travaille un peu n'importe comment. Il enregistre ses photos où il trouve de la place, sans trop se soucier de la pérennité de sa méthode d'archivage. Au bout de quelques années, ses 900 Go de photos se trouvent à l'étroit sur son disque dur et il faut les migrer sur un support plus large. 900 Go ça fait un sacré patrimoine visuel et un temps de travail considérable. On ne veut donc rien en perdre

Première option

On a activé les fichiers sidecar .xmp il y a longtemps, on dispose donc de deux copies des retouches de chaque image :
  1. dans la base de données ~/.config/darktable/library.db de Darktable,
  2. dans les fichiers .xmp présents dans le répertoire des images brutes.
On peut donc copier les répertoires d'images sur le nouveau support et réimporter les collections d'images avec Darktable, qui trouvera les fichiers XMP et les importera dans sa base de données.

Il y a plusieurs inconvénients à cette méthode :
  1. avec 900 Go, donc environ 36 000 photos, tout réimporter va prendre infini de temps,
  2. on va laisser dans la base de données de Darktable des entrées mortes et obsolètes (DT va garder en mémoire les anciennes collections déplacées) ce qui va l'alourdir et la ralentir inutilement. À ce jour, ma base library.db pèse 580 Mo, on ne va pas faire exprès de la surcharger,
  3. réimporter de façon récursive les dossiers et sous-dossiers d'images risque d'importer des fichiers indésirables dans Darktable (images exportés, fichiers de retouche Photoshop, etc.). Sinon, il faut réimporter à la main toutes les collections une par une, et cf. point 1.
Cette méthode est simple et sale. On va éviter.

Deuxième option

On va changer le répertoire source des photos de la base de données de Darktable directement dans la base de données de Darktable. Avantages :
  1. pas de réimportation fastidieuse
  2. pas de doublons obsolètes dans la base de données
C'est plus propre mais un peu plus technique :

1. Ouvrir un terminal
2. Installer sqlite3, le gestionnaire de base de données :
Code :
sudo apt-get install sqlite3

3. Dans votre répertoire utilisateur (le /home/user), nous allons créer un lien symbolique qui pointe vers le nouveau support de stockage. Darktable pointera vers ce lien symbolique. Si dans 3 ans, vous changez à nouveau de stockage, ou que votre disque dur change de point de montage, il suffira de mettre à jour le lien symbolique (simple et rapide) à la place de remettre à jour toutes les images de la base de données. Dans la commande ci dessous, remplacez $device par le chemin complet de votre nouveau répertoire de stockage.
Code :
ln -s /media/$device/ ~/Photos

On a donc à présent un lien Photos dans le home.

4.Faites une sauvegarde de la base de données de Darktable. En cas de problème, ça nous permettra de récupérer l'ancienne :
Code :
cp ~/.config/darktable/library.db ~/.config/darktable/library.db.backup

5. Ouvrez la base de données dans sqlite :
Code :
sqlite3 ~/.config/darktable/library.db

5. Mettre à jour le chemin des images. Changez DEVICE par l'ancien chemin complet des photos et USER par votre identifiant utilisateur :
Code :
update film_rolls set folder=replace( folder, '/media/DEVICE/', '/home/USER/Photos/' ) where folder like "%media/DEVICE/%";

6. Taper Ctrl + D pour quitter sqlite.

7. Maintenant, il ne reste qu'à copier les images. Vous pouvez utiliser votre navigateur de fichiers habituel (Nautilus, etc.), cependant si votre périphérique est débranché sauvagement en cours de route ou qu'une coupure de courant survenait, vous n'auriez aucun moyen de savoir où s'est arrêtée la copie ni de vérifier l'intégrité des fichiers. Si votre collection d'image comporte, comme la mienne, des portraits de gens disparus et des moments précieux, vous devez vous assurer que vous transférez toutes vos données intègres. Nous allons donc utiliser RSYNC pour effectuer une copie haute sécurité. Installez le :
Code :
sudo apt-get install rsync

Puis remplacez ANCIEN-DEVICE et NOUVEAU-DEVICE par les chemins complets de l'ancien support et du nouveau support dans la commande suivante :
Code :
rsync -r -t -p -o -g --progress --modify-window=1 -c -l -H -D /media/ANCIEN-DEVICE/ /media/NOUVEAU-DEVICE/
Cette commande va sychroniser les deux répertoires en :
  • conservant la date initiale des fichiers
  • conservant le propriétaire, les groupes et permissions des fichiers,
  • gérant la compatibilité avec Windows sur les systèmes FAT32,
  • copiant les liens physiques et symboliques tels quels,
  • vérifiant toujours la somme de contrôle des fichiers.
Exécutez cette commande au moins deux fois pour être sûr :
  • la première passe va copier les fichiers
  • la deuxième va les vérifier, et recopier les fichiers avec erreurs.
La commande peut prendre jusqu'à 10h pour s'exécuter complètement (suivant le volume de données à transférer et la vitesse de transfert). Prévoyez donc deux jours.

8. Ouvrez Darktable et assurez-vous que tout fonctionne. La commande ci-dessous va générer toutes les miniatures manquantes des images de la base de données et constitue une façon détournée de vérifier que tout est à sa place :
Code :
darktable-generate-cache

Source : http://darktable-users.narkive.com/Pbe5O...ve-folders
Une solution sans utiliser de lien symbolique est de s'assurer d'avoir un montage avec un chemin constant en positionnant proprement fstab. Par exemple mon NAS:


Code :
//backup.home/Photos /mnt/photos cifs user=<USER>,password=<MOTDEPASSE>,rw,noauto,users,sec=ntlm 0 0

Du coup mon NAS est monté sur /mnt/photos et pour mon prochain ce sera pareil.
Merci @aurelienpierre, ça servira sans doute à quelqu'un un jour...

C'est d'ailleurs scriptable sans difficulté. Wink
@pobri le problème de fstab, c'est qu'il est écrasé à chaque réinstallation. De plus, si la ressource n'est pas accessible sur le réseau, le système va quand même essayer de la monter en vain et ça va gréver le temps de boot.

De plus, le problème que j'ai eu est que Ubuntu 14.04 montait les périphériques dans /media/ alors que Ubuntu 16.04 les monte dans /media/username/. Ce changement de stratégie a cassé ma libraire, l'idée de passer par un lien symbolique intermédiaire est de se prémunir de ce genre de changement de stratégie à l'avenir. Il y a probablement plus propre, mais cette solution est simple et rapide.
@aurelienpierre, tu n'es pas obligé de le configurer en auto-mount.(option noauto) pour éviter le problème de temps de boot. Pour la réinstall ok, mais bon tu ne fais pas cela tous les jours. De mon coté j'ai toujours des backup et je récupère mes fichiers de config d'une installation à l'autre.

> Il y a probablement plus propre, mais cette solution est simple et rapide.

Ben oui, c'est le fstab Smile
C'est un sujet intéressant :
la problématique de la gestion des photos et de leur sauvegarde :
- gestion des photos par plusieurs logiciels différents (pour ma part : Bibble, Aftershotpro, Ligthzone, Digicam, et surtout Darktable (évolution selon les époques))
- modification de l'espace disque en fonction du nombre de photos,
- sauvegarde

pour ma part j'ai résolu le problème en stockant les photos RAW sur un DD dédié
ce DD est monté dans un répertoire /home/Photo/photos
/home/Photo étant le répertoire d'un groupe photo
dans /home/Photo il y a un répertoire spécifique pour chaque logiciel (exple : /home/Photo/Darktable, /home/Photo/Lightzone, ...)
Darktable ne travaille que sur /home/Photo/Darktable/ par exemple
dans ces répertoires dédiés aux logiciels, la structure des sous-répertoires est identique à la structure des sous-répertoire du DD monté dans /home/Photo/photo
les fichiers sont des liens pointant vers les photos stockées dans /hoem/Photo/photo
les fichiers xmp de chaque logiciel sont stockés dans leur répertoires spécifiques

lors d'un changement de DD j'umount le DD mounter sur /home/Photo/photo,
je recopie le DD sur un nouveau DD plus gros,
je mounte le nouveau DD sur /home/Photo/photo (changement du /etc/fstab au passage)
ni vu ni connu par DT

sauvegarde classique sur un NAS par rsync,
hard-sauvegarde sur un DD amovible (idem que lors d'un chgt de DD) qui sera stocké en dehors de l'ordinateur

je ne travaille pas par le réseau car temps d'accès aux fichiers aléatoire en fonction des autres utilisateurs
@kohlerg, merci pour ce retour. dans mon cas je n'utilise que darktable donc je n'ai que /mnt/photos/photo. ce DD externe est en RAID-1 et toutes mes données sont sauvegardées la nuit entre minuit et 7h du mat sur le cloud Hubic. Le montage Hubic est lent (~ 2.5Go pour les 7h) mais c'est uniquement pour de la sauvegarde hors domicile.

<pub>
je suis le mainteneur de hubicfuse qui permet de monter son hubic depuis un point de montage fuse/linux, dans mon cas /mnt/hubic. (pour 50€ / ans on a 10To).
</pub>
J'ai essayé Hubic. Mon ordi n'arrête pas de tourner. C'est vraiment un problème.
@valmy, je n'utilise pas l'outil de synchro d'hubic mais un montage fuse directement. aucun soucis du coup.
Intéressé ...
Pages : 1 2