Última importación bloqueada en la carpeta Eventos de iPhoto después de migrar a la aplicación Fotos

1

Acabo de actualizar a la nueva aplicación de Fotos en OS X y migré mi biblioteca de iPhoto a la nueva aplicación. Al acostumbrarme a todos los cambios, he notado un problema: parece que el álbum de Última importación está atascado en la carpeta de eventos de iPhoto por alguna razón. (¿La base de datos de iPhoto considera que la última importación es un "evento"?)

Puedo decir que el álbum en solitario es Última importación porque:

  • He movido todos los otros álbumes fuera de la carpeta, pero todavía dice que hay un álbum que queda dentro, aunque la vista muestra que está vacío dentro.

  • Cuando vuelvo a la vista de álbum de nivel superior, se muestra que la carpeta de eventos de iPhoto contiene una miniatura del álbum a diferencia de la vista interior. La miniatura en la carpeta coincide con la miniatura de la última importación.

  • Cuando muevo las fotos de Última importación e importo un conjunto diferente de fotos, se actualizan ambas miniaturas.

Ahora hay un problema mayor: si elimino la carpeta de eventos de iPhoto ahora, perderé el álbum Última importación de forma permanente sin que haya una forma aparente de recuperarlo a través de la interfaz de usuario o las preferencias de la aplicación. (Me imagino que puedo recuperarlo editando el plist de la aplicación en ~/Library/Containers/com.apple.Photos/Data/Library/Preferences o uno o más archivos en el paquete, pero no estoy seguro de dónde buscarlo).

Lo he intentado

  • importar nuevas fotos para ver si reaparece Last Import, pero no lo hace.

  • reparar la biblioteca de fotos usando el mismo método que iPhoto (mantenga Command ⌘ y Option ⌥ al abrir la aplicación), pero no ayuda.

  • reparar la biblioteca de iPhoto antes de migrar a Fotos, pero tampoco ayuda.

  • deshaciendo la eliminación, pero solo trae de vuelta las carpetas Última importación y iPhoto Events.

He vuelto a importar la biblioteca original de iPhoto por ahora para que se conserve su estado original. ¿Qué puedo hacer para separar Last Import de la carpeta de eventos de iPhoto para poder eliminar esta última de forma segura?

    
pregunta BoltClock 12.04.2015 - 06:08

1 respuesta

0

Creé una nueva biblioteca de iPhoto, la llené con algunas fotos y migré esa biblioteca a Photos, pero no pude reproducir este problema. Así que se parece a otro problema con mi biblioteca iPhoto original . Genial

Así que decidí buscar directamente en la base de datos de la biblioteca de fotos para ver qué estaba pasando. La base de datos de la biblioteca de fotos se puede encontrar en ~/Pictures/Photos Library.photoslibrary/Database/Library.apdb ; esta es una base de datos SQLite que se puede abrir utilizando la herramienta de línea de comandos sqlite3 , o cualquier GUI que prefiera.

Si estás a punto de seguir los pasos de mi respuesta más allá de este punto, recuerda hacer una copia de seguridad del archivo de la biblioteca antes de continuar .

El esquema para RKAlbum contiene una columna folderUuid que asocia un álbum con una carpeta (en RKFolder ). En la biblioteca de fotos que se migró de la nueva biblioteca de iPhoto, el álbum Última importación tiene este aspecto:

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

Pero en la biblioteca de fotos que se creó a partir de mi biblioteca original de iPhoto, el álbum tiene este aspecto:

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

Note que folderUuid aquí es una cadena generada y no 'LibraryFolder' . Obviamente, esta es una carpeta arbitraria, específicamente la carpeta de eventos de iPhoto que se crea como parte del proceso de migración. Y por supuesto:

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

Como solución inmediata, parece que cambiar la columna directamente funciona:

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

Ahora, al abrir Fotos y eliminar la carpeta de eventos de iPhoto se deja intacta la última importación. Importar nuevas fotos no causa más problemas; la carpeta Última importación se comporta como siempre, y debería.

Por curiosidad, decidí averiguar qué causaba que Photos colocara Last Import en la carpeta de eventos de iPhoto en primer lugar.

Resulta que, en mi biblioteca de iPhoto original, el folderUuid de la última importación no era 'LibraryFolder' , sino 'AllProjectsItem' , lo mismo que la categoría de Eventos original:

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

Este no es el caso en la nueva biblioteca de iPhoto:

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

La corrección de la columna incorrecta en la base de datos de la biblioteca iPhoto original (con la misma declaración UPDATE que la anterior) también parece corregir la carpeta Última importación al migrar a las fotos. Creo que seguiré con esto, ya que corrige tanto las bibliotecas antiguas como las nuevas.

Me gusta en mi pregunta anterior , No entiendo por qué o cómo mi biblioteca de iPhoto original alcanzó ese estado en primer lugar, o por qué la reparación / reconstrucción de la biblioteca no ayudó en absoluto. ¿Fui mordido por un error raro en iPhoto? ¿Estaba usando iPhoto incorrectamente? De cualquier manera, tengo la suerte de saber una o dos cosas sobre SQLite y, por lo tanto, pude arreglarlo por mi cuenta. Si en el improbable caso de que alguien se haya topado con este mismo problema, espero que esta publicación les sea útil. .

Una vez más, asegúrate de hacer una copia de seguridad de toda la biblioteca primero .

    
respondido por el BoltClock 12.04.2015 - 08:50

Lea otras preguntas en las etiquetas