#Comment : déplacer les emplacements de la bibliothèque sans perdre les métadonnées {{METATOC 4-5}} Il s'agit d'un guide expliquant comment modifier l'emplacement des fichiers de bibliothèque sans perdre toutes les métadonnées créées. Il y a deux endroits où les choses doivent être mises à jour pour pointer vers le nouveau lecteur. Le premier se trouve dans la base de données et le second dans les fichiers de configuration de Jellyfin. ####Faire une sauvegarde Préparer des sauvegardes au cas de mauvaise manipulation pour réinitialiser à son dernier état de fonctionnement connu. * Arrêter le serveur Jellyfin * Faire la sauvegarde : `tar -czf jellyfin-config-backup.tgz /path/to/jellyfin/config` ####Mise à jour de la base de données Installer **sqlite3** pour se connecter au fichier de base de données et exécuter des requêtes. Le fichier auquel il faut se connecter est situé dans le dossier de données de Jellyfin, et s'appelle `library.db`. Il faut mettre à jour toutes les tables qui doivent être mises à jour : **TypedBaseItems** et **mediastreams** et **Chapters2**. ``` UPDATE mediastreams SET Path = REPLACE(Path, '/media/driveOld/', '/media/driveNew/'); UPDATE TypedBaseItems SET Path = REPLACE(Path, '/media/driveOld/', '/media/driveNew/'); UPDATE TypedBaseItems SET data = REPLACE(data, '/media/driveOld/', '/media/driveNew/'); UPDATE TypedBaseItems SET Images = REPLACE(Images, '/media/driveOld/', '/media/driveNew/'); UPDATE Chapters2 SET ImagePath = REPLACE(ImagePath, '/media/driveOld/', '/media/driveNew/'); ``` On peut vérifier que tout a fonctionné en exécutant ces requêtes pour vérifier qu'aucun enregistrement n'est renvoyé : ``` SELECT COUNT(*) FROM TypedBaseItems WHERE Path LIKE '/media/VolumeOld%'; ``` ``` SELECT COUNT(*) FROM mediastreams WHERE Path LIKE '/media/VolumeOld%'; ``` Une fois que tout est mis à jour dans ces deux tables, il faut mettre à jour les fichiers de configuration locaux de **Jellyfin**. ####Mise à jour des fichiers de configuration Jellyfin Il faut mettre à jour tous les chemins dans les fichiers sur disque : ``` find ./root/default/ -type f -name '*.mblink' -exec sed -i 's%/media/driveOld/%/media/driveNew/%g' {} \; find ./root/default/ -type f -name "options.xml" -exec sed -i 's%/media/driveOld/%/media/driveNew/%g' {} \; find ./data/collections/ -type f -name "collection.xml" -exec sed -i 's%/media/driveOld/%/media/driveNew/%g' {} \; find ./data/playlists/ -type f -name "playlist.xml" -exec sed -i 's%/media/driveOld/%/media/driveNew/%g' {} \; ``` ####Vérification Pour effectuer une dernière vérification des fichiers supplémentaires qui doivent être mis à jour, exécuter : ``` ag -l /media/Volume /chemin/vers/jellyfin/config/* ``` Et on obtiendra une liste de fichiers contenant la chaîne `/media/Volume`. On peut maintenant démarrer **Jellyfin**. En fonction des paramètres, Jellyfin peut ne pas analyser immédiatement, alors on il est conseillé de démarrer manuellement une analyse via le tableau de bord Web.