PDA

Zobacz pełną wersję : Lightroom - uszkodzona baza/katalog



ogc13
16.08.18, 23:37
Dzisiaj mi się przytrafiło
LR podczas uruchamiania stwierdził, że baza jest uszkodzona.
Zaproponował naprawę ale nic to nie dało więc zasugerował odtworzenie z kopii zapasowej.
Nie pasowało mi to bo kopie miałem dosyć starą.
Internet podpowiedział, że można taki katalog próbować naprawić.

Gdyby ktoś miał taki problem to taka procedura działa - sprawdziłem:

1. Kopiujemy do jakiegoś katalogu tymczasowego (np. "c:\temp") plik z bazą danych LR. Plik ten ma rozszerzenie ".lrcat" i standardowo znajduje się w katalogu "Obrazy/Lightroom" danego użytkownika. U mnie to jest katalog: "C:\Users\G\Pictures\Lightroom".
Ważne jest żeby zmienić nazwę tego pliku tak by nie zawierała spacji. Czyli np. z "Lightroom Catalog.lrcat" na "LightroomCatalog.lrcat"
Ten plik jest to baza danych w systemie SQLite.

2. Ściągamy z internetu narzędzia do bazy SQLite ze strony: https://www.sqlite.org/download.html
Wybieramy narzędzia dla naszego systemu operacyjnego. Należy szukać linków ze słowem "tools".
Pliki zapisujemy w tym samym katalogu co uszkodzona baza - w naszym przypadku "c:\temp".
Ściągnięte pliki są zarchiwizowane należy je rozpakować tak by w naszym katalogu pojawił się plik "sqlite3.exe"

3. Generujemy z naszej uszkodzonej bazy plik zawierający polecenia SQL i modyfikujemy go troszeczkę.

W tym celu uruchamiamy komendy wiersza poleceń Windows (Start->Uruchom->cmd).
W czarnym okienku wpisujemy komendy:

a) zmieniamy katalog na ten zawierający nasze pliki
komenda 1 = "c:" --> naciskamy ENTER
komenda 2 = "cd c:\temp" --> naciskamy ENTER
komenda 3 = "echo .dump | sqlite3 LightroomCatalog.lrcat > LightroomCatalog.sql" --> naciskamy ENTER

Opisane komendy utworzą nam plik tekstowy "LightroomCatalog.sql" zawierający definicję struktury bazy danych + polecenia wypełniające tabelki danymi

b) UWAGA. Jeżeli baza była uszkodzona w utworzonym powyżej pliku na samym końcu zostaje umieszczona linia zawierająca tekst:
"ROLLBACK; -- due to errors"
Musimy zmienić ten tekst na "COMMIT;"
Bez tej zmiany skrypt SQL po imporcie cofnie wszystkie zmiany i nie odtworzymy bazy danych.
Ponieważ plik jest bardzo duży (u mnie prawie 1GB), edycję tego słowa należy zrobić w jakimś bardziej zaawansowanym edytorze niż NOTATNIK. Proponuję użyć programu Notepad++.

4. Z utworzonego pliku z poleceniami SQL ("LightroomCatalog.sql") generujemy nową bazę danych dla LR.

W tym celu uruchamiamy komendy wiersza poleceń Windows (Start->Uruchom->cmd) lub korzystamy z poprzednio uruchomionego (tak lepiej bo już mamy katalog roboczy ustawiony).
W czarnym okienku wpisujemy komendy:

a) generujemy nową bazę danych
komenda 1 = "sqlite3.exe -init LightroomCatalog.sql NewLightroomCatalog.lrcat "" " --> naciskamy ENTER --> (UWAGA w tym poleceniu na końcu są dwa znaki cudzysłowia)

Po tej komendzie w naszym katalogu powinien powstać plik "NewLightroomCatalog.lrcat" zawierający naprawioną bazę Lightroom'a.

5. Kopiujemy utworzoną bazę do miejsca gdzie LR przechowuje dane (u mnie "C:\Users\G\Pictures\Lightroom"), ale pamiętając o zmianie jego nazwy na tą oryginalną (w moim przypadku "Lightroom Catalog.lrcat" - dodałem tą spację w nazwie).

6. Uruchamiamy LR i powinno być OK.


DOBRE RADY:

1. Włączamy opcję zapisu dla każdego zdjęcia pliku ze zmianami XMP. Opcja "Edit -> Catalog Settings -> Automatically write changes into XMP".
Dzięki temu gdy baza zostanie uszkodzona będziemy mieli dla każdego zdjęcia zapisane wszystkie zmiany na dysku wplikach XMP , które zrobiliśmy w module DEVELOP.
Takie zmiany można potem zaczytać dla zdjęć --> "Metadata --> Read metadata from file".

2. Często wykonujemy kopię tego katalogu/ bazy.
Proponuję zmienić ustawienia backupu na : "Edit -> Catalog Settings -> Backup catalog=Every time lightroom exits"

honada
2.07.25, 17:42
Część, dziękuję Ci za ten poradnik. Zrobiłem tak jak napisałeś i o dziwo za pierwszym razem coś tam zadziałało. Nie jest idealnie, cześć katalogów mam pustych, ale wiele jest! Natomiast mam pytanie, nie mam moich pędzli. Są one widoczne na przerobionych zdjęciach, ale Light room nie ma ich w pamięci. LR6.
PS. dlaczego baza zmniejszyła mi się z 1,5 GB do 0,4 GB? Tyle danych stracił?