Alterando a pasta de fotografias do F-Spot

Quando eu mudei de disco rígido, o F-Spot não encontrou mais minhas fotografias. O caminho para a pasta com as fotografias tinha mudado, porque adotei um nome de usuário diferente. Caso você passe por essa situação, leia as instruções a seguir sobre como corrigir seu banco de dados.

Começando do básico, a pasta das fotografias pode ser configurada no F-Spot com o diálogo de Preferências. Depois de você mudar as fotografias de lugar, vá ao F-Spot e informe-o sobre isso. Os metadados por sua vez estão guardados num banco de dados (~/.gnome2/f-spot/photos.db), que você pode vai precisar editar. Mas, antes de editá-lo, você precisa fazer uma cópia de segurança! Há uma grande chance de que você estrague o banco de dados na primeira tentativa.

Muito bem, você já colocou suas fotografias onde quer, já configurou o F-Spot, e já tem backup do banco de dados. Abra o banco de dados, e confira como está configurado o caminho para as fotografias:

$ sqlite3 photos.db
SQLite version 3.5.6
Enter “.help” for instructions
sqlite> select id, uri from photos;

716|file:///home/usuario/Photos/2007/12/12/100_0976.jpg
717|file:///home/usuario/Photos/2007/12/12/100_0977.jpg
718|file:///home/usuario/Photos/2007/12/12/100_0978.jpg
719|file:///home/usuario/Photos/2007/12/12/100_0979.jpg
720|file:///home/usuario/Photos/2007/12/12/100_0980.jpg
721|file:///home/usuario/Photos/2007/12/12/100_0981.jpg
722|file:///home/usuario/Photos/2007/12/12/100_0982.jpg

sqlite>

Para alterar o caminho para as fotografias, você deve calcular o tamanho do URI que deseja alterar. Supondo que você queira trocar “Photos” por “Fotografias”, você precisaria (pelo que eu sei) trocar tudo de “file://” até “Photos”. Nesse caso, o comando seria:

sqlite> update photos set uri = ‘file:///home/usuario/Fotografias’|| substr(uri,28);
sqlite>

O número 28 equivale ao comprimento de “file:///home/usuario/Photos”, mais um (não me pergunte por quê). Para conferir se tudo saiu bem, faça uma nova pesquisa:

sqlite> select id, uri from photos;

716|file:///home/usuario/Fotografias/2007/12/12/100_0976.jpg
717|file:///home/usuario/Fotografias/2007/12/12/100_0977.jpg
718|file:///home/usuario/Fotografias/2007/12/12/100_0978.jpg
719|file:///home/usuario/Fotografias/2007/12/12/100_0979.jpg
720|file:///home/usuario/Fotografias/2007/12/12/100_0980.jpg
721|file:///home/usuario/Fotografias/2007/12/12/100_0981.jpg
722|file:///home/usuario/Fotografias/2007/12/12/100_0982.jpg

sqlite>

O resultado (correto ou não) já está gravado no arquivo. Se você tiver errado, pode tentar consertar, ou sair do sqlite e aproveitar aquele backup que você fez. (Não se esqueça de que você pode precisar dele mais de uma vez… mantenha sempre uma cópia de segurança.) O comando para sair do sqlite é:

sqlite> .quit
$

Eu testei o procedimento como no exemplo, e também trocando apenas o nome de usuário (que era minha necessidade). Imagino que funcione com espaços e caracteres acentuados, mas não garanto. Se você experimentar, avise nos comentários abaixo!

Agradecimentos: Esse artigo só foi possível devido à ajuda de Roland Mas no IRC, me indicando as instruções originais (em inglês) na lista de discussão do F-Spot.

2 respostas em “Alterando a pasta de fotografias do F-Spot

  1. Pingback: Leonardo via Rec6

Deixe um comentário