mercoledì 4 luglio 2018

Recuperare catalogo Lightroom danneggiato

Dopo aver cambiato PC ed aver scoperto che il vecchio disco è morto, ho scaricato il backup del catalogo di Lightroom dal cloud (assieme a tutte le immagini). Con mia somma gioia ho scoperto che né il backup né le precedenti 4 versioni funzionano: Lightroom da errore all'apertura, poi tenta di ripristinare i dati, ma senza successo.

Scopro dunque una procedura per ricostruire il catalogo.
La procedura è descritta qui:

  • Just to let you know, I’m on a Windows platform, if you’re on a mac, please read Gerhard Strasse’s post.
  • Extract all files in a folder. Mine is in c:\SQLite
  • For simpler execution, Copy your corrupted catalog to the same folder, in this case copy it to c:\SQLite
  • Open a DOS prompt or a Command prompt.
  • Inside the command prompt change directory to c:\SQLite, the command is :
  • cd \sqlite
  • Here is the first of the two commands to execute to repair the catalog:
  • echo .dump | sqlite3 YourCatalogFileName.lrcat > TempLRCatName.sql
  • This command will extract all data from the database file into a text file with all the SQL commands needed to recreate the database. After exporting all the data, it will create a new database and use “.lrcat” as the file name’s extension. gerhardstrasse.wordpress.com.
  • 2nd command which will initialize and create a new lr3 database file .lrcat.
  • sqlite3 -init  TempLRCatName.sql  NewCatalogFileName.lrcat
  • After the execution of the above command I got this message:
  • Error: near line 6961135: database disk image is malformed.

Partendo dall'assioma che il catalogo di LR non è altro che un database SQL, i comandi servono ad effettuare un dump del database su file di test e poi ricostituirlo, ottenendo non solo il pieno funzionamento con LR ma anche un netto alleggerimento del DB stesso.

Il problema è che tentando i passi descritti da Windows 10, il metodo non funziona. Per prima cosa, pare che la codifica non sia corretta, tanto che al tentativo di inizializzare il DB, sqlite da errore nei primi caratteri letti ("??P"). Anche correggendo la codifica (ed eliminando l'ultima riga di ROLLBACK, come consigliato in qualche post), il dump è corretto, ma il DB ricostituito è vuoto (o nel migliore dei casi grande qualche decina di mega e comunque non leggibile da LR).
Dopo un paio d'ore di prove, ho deciso di provare il metodo su Ubuntu.

Installo sqlite3:
sudo apt install sqlite3
 Dumpo il database di LR su file sql:
 echo .dump | sqlite3 Portfolio.lrcat > test.sql
Ed infine ricostituisco il DB di LR:
sqlite3 -init test.sql Ripristinato.lrcat
Il catalogo originale è di 575MB, il dump di 220MB ed il catalogo riprisinato di 248MB (meno della metà dell'originale).
A questo punto, aprendo il catalogo ripristinato, LR non fa più lo schizzinoso.

Ed è anche nettamente più prestante.

Considerato che Ubuntu è gratis, può essere avviato Live anche da disco USB e che, soprattutto, saper usare un minimo Linux è cosa buona e giusta, ti consiglio di non perdere tempo tentando di recuperare il tuo catalogo Lightroom da Windows.

Nessun commento:

Posta un commento