Ultima importazione bloccata nella cartella Eventi iPhoto dopo la migrazione all'app Foto

1

Mi sono appena aggiornato alla nuova app Foto su OS X e ho migrato la mia libreria iPhoto alla nuova app. Mentre mi sono abituato a tutte le modifiche, ho notato un problema: sembra che l'album Ultima importazione sia bloccato nella cartella Eventi iPhoto per qualche motivo. (Il database di iPhoto considera l'ultima importazione come un "evento"?)

Posso dire che l'album solitario è Ultima importazione perché:

  • Ho spostato tutti gli altri album fuori dalla cartella, ma dice ancora che è rimasto un album all'interno, anche se la vista mostra che è vuota all'interno.

  • Quando torno alla vista dell'album di livello superiore, viene mostrata la cartella Eventi iPhoto che contiene una miniatura dell'album a differenza della vista interna. La miniatura all'interno della cartella corrisponde alla miniatura di Ultima importazione.

  • Quando sposto le foto dall'ultima importazione e importi una serie diversa di foto, entrambe le miniature vengono aggiornate.

Ora ecco il problema più grande: se elimino la cartella di iPhoto Events ora, perderò definitivamente l'ultimo album di importazione senza alcun modo apparente di recuperarlo attraverso l'interfaccia utente o le preferenze dell'applicazione. (Immagino di poterlo recuperare modificando l'app plist in ~/Library/Containers/com.apple.Photos/Data/Library/Preferences o uno o più file nel pacchetto, ma non sono sicuro di dove cercare.)

Ho provato

  • importazione di nuove foto per vedere se riappare l'ultima importazione, ma non è così.

  • riparare la libreria di Foto usando lo stesso metodo di iPhoto (tieni premuto Comando ⌘ e Opzione ⌥ quando apri l'app), ma non aiuta.

  • riparare la libreria iPhoto prima migrare a Photos, ma non aiuta neanche.

  • annulla l'eliminazione, ma riporta solo l'ultima importazione e la cartella degli eventi iPhoto.

Ho reimportato la libreria iPhoto originale per ora in modo che il suo stato originale sia preservato. Che cosa posso fare per separare l'ultima importazione dalla cartella degli eventi di iPhoto in modo da poter rimuovere in sicurezza quest'ultimo?

    
posta BoltClock 12.04.2015 - 06:08
fonte

1 risposta

0

Ho creato una nuova libreria iPhoto, l'ho popolata con alcune foto e ho trasferito la libreria su Photos, ma non ho potuto riprodurre questo problema. Quindi sembra un altro problema con la mia libreria iPhoto originale . Grande.

Quindi ho deciso di guardare direttamente nel database della libreria Photos per vedere cosa stava succedendo. Il database della libreria Photos può essere trovato in ~/Pictures/Photos Library.photoslibrary/Database/Library.apdb ; questo è un database SQLite che può essere aperto usando lo strumento sqlite3 della riga di comando o qualsiasi GUI che preferisci.

Se stai per seguire i passaggi della mia risposta oltre questo punto, ricorda di eseguire il backup del file della libreria prima di procedere .

Lo schema per RKAlbum contiene una colonna folderUuid che associa un album a una cartella (in RKFolder ). Nella libreria Foto migrata dalla nuova libreria di iPhoto, l'album Ultima importazione appare così:

sqlite> SELECT name, folderUuid FROM RKAlbum WHERE name = 'Last Import';
Last Import|LibraryFolder

Ma nella libreria Photos creata dalla mia libreria iPhoto originale, l'album ha il seguente aspetto:

sqlite> SELECT name, folderUuid FROM RKAlbum WHERE name = 'Last Import';
Last Import|cQeJj7YPRmSxHysWN+ql4w

Si noti che folderUuid qui è una stringa generata e non 'LibraryFolder' . Ovviamente, questa è una cartella arbitraria, in particolare la cartella Eventi iPhoto creata come parte del processo di migrazione. E abbastanza sicuro:

sqlite> SELECT uuid, name FROM RKFolder WHERE uuid = 'cQeJj7YPRmSxHysWN+ql4w';
cQeJj7YPRmSxHysWN+ql4w|iPhoto Events

Come soluzione immediata, cambiare direttamente la colonna sembra funzionare:

sqlite> UPDATE RKAlbum SET folderUuid = 'LibraryFolder' WHERE name = 'Last Import';

Ora l'apertura di Foto e l'eliminazione della cartella di iPhoto Events lascia intatto l'ultima importazione. L'importazione di nuove foto non causa ulteriori problemi; la cartella Ultima importazione si comporta come sempre, e dovrebbe.

Per curiosità, ho deciso di scoprire che cosa stava causando l'inserimento di Foto nell'ultima importazione nella cartella Eventi di iPhoto.

Risulta, nella mia libreria iPhoto originale, folderUuid di Ultima importazione non era 'LibraryFolder' , ma 'AllProjectsItem' - uguale alla categoria Eventi originale:

sqlite> SELECT name, folderUuid FROM RKAlbum WHERE name = 'Last Import';
Last Import|AllProjectsItem
sqlite> SELECT name, folderUuid FROM RKAlbum WHERE folderUuid = 'AllProjectsItem';
Events|AllProjectsItem
Last Import|AllProjectsItem

Questo non è il caso nella nuova libreria di iPhoto:

sqlite> SELECT name, folderUuid FROM RKAlbum WHERE name = 'Last Import';
Last Import|LibraryFolder

La correzione della colonna errata nel database della libreria iPhoto originale (con la stessa dichiarazione UPDATE di cui sopra) sembra correggere la cartella Ultima importazione durante la migrazione anche su Photos. Penso che andrò con questo dato che corregge sia le vecchie che le nuove librerie.

Come nella mia domanda precedente , Non capisco perché o come la mia libreria iPhoto originale abbia raggiunto quello stato in primo luogo, o perché la riparazione / ricostruzione della libreria non sia stata di alcun aiuto. Sono stato morso da un raro bug in iPhoto? Stavo usando iPhoto in modo errato? Ad ogni modo, sono fortunato che conosco una cosa o due su SQLite ed è stato quindi in grado di risolverlo da solo - se nell'improbabile caso qualcuno si è imbattuto in questo stesso problema, spero che questo post sarà utile per loro .

Ancora una volta, assicurati di eseguire il backup dell'intera libreria .

    
risposta data 12.04.2015 - 08:50
fonte

Leggi altre domande sui tag