·5 min de lectura

Cómo Explorar Archivos SQLite de Core Data en Mac

Core Data almacena sus datos en archivos SQLite, pero Apple no ofrece ninguna herramienta visual para inspeccionarlos. Depurar datos persistentes significa buscar entre contenedores de apps y leer salidas SQL en bruto.

Estás depurando un problema de Core Data en tu app de iOS o macOS. Los datos se ven incorrectos en la interfaz y necesitas ver qué está realmente almacenado en el archivo SQLite subyacente. El editor de modelos de Core Data de Xcode muestra tu esquema, pero no te permite explorar los datos persistidos reales. Así que empiezas la búsqueda: encuentras el contenedor de la app, ubicas el archivo .sqlite, abres Terminal y comienzas a ejecutar consultas en bruto contra tablas con nombres como ZUSER y ZPOST, donde cada columna está prefijada con Z y nada coincide intuitivamente con los nombres de tus entidades.

Los Archivos SQLite de Core Data Son Difíciles de Inspeccionar

Core Data usa SQLite como su almacén persistente predeterminado, pero añade sus propias convenciones. Los nombres de entidades reciben un prefijo Z en el nombre de la tabla. Los atributos obtienen nombres de columna prefijados con Z. Las relaciones se almacenan como claves foráneas enteras en columnas que quizás no reconozcas de inmediato. Existe una tabla Z_METADATA y una tabla Z_PRIMARYKEY que Core Data gestiona internamente.

Nada de esto está documentado de forma que facilite la inspección manual. Terminas ejecutando consultas como SELECT * FROM ZUSER; y tratando de relacionar las columnas con prefijo Z con tu modelo de objetos gestionados. En Terminal, sin resaltado de sintaxis y sin cuadrícula visual, esto es tedioso.

Xcode no ayuda aquí. No hay un navegador de SQLite integrado. La herramienta Instruments puede perfilar operaciones de Core Data, pero no te mostrará los datos reales de las filas. Necesitas una herramienta aparte.

Explora Archivos SQLite de Core Data Con Tome

Tome abre los archivos SQLite de Core Data como cualquier otra base de datos. Navega hasta el contenedor de tu app, encuentra el archivo .sqlite y ábrelo en Tome. Cada tabla con prefijo Z aparece en la barra lateral. Haz clic en una para ver todas las filas y sus valores en una cuadrícula desplazable.

Tome explorando un archivo SQLite de Core Data mostrando tablas con prefijo Z

Ve los Datos Reales

Cuando tu app muestra el valor incorrecto, abre el archivo SQLite en Tome y revisa los datos realmente almacenados. ¿El valor está mal en la base de datos, o es un error de obtención/visualización? Tener acceso visual a los datos en bruto responde esta pregunta en segundos.

Inspecciona Relaciones y Metadatos

Explora la tabla Z_PRIMARYKEY para ver cómo Core Data rastrea los tipos de entidad y las claves primarias. Revisa las columnas de claves foráneas para verificar que las relaciones se almacenan correctamente. Inspecciona Z_METADATA para ver el hash de la versión del modelo.

Ejecuta Consultas de Diagnóstico

Usa el editor de consultas SQL de Tome para escribir uniones entre las tablas con prefijo Z de Core Data, filtrar registros específicos o buscar filas huérfanas que puedan indicar un problema de migración. El resaltado de sintaxis y el autocompletado lo hacen más fácil que ejecutar consultas en bruto en Terminal.

Seguro de Inspeccionar, Fácil de Encontrar

Para el Simulador, el archivo SQLite de tu app vive muy dentro de ~/Library/Developer/CoreSimulator/. Para una app de macOS, revisa ~/Library/Containers/ o ~/Library/Application Support/. Una vez que hayas localizado el archivo, arrástralo al ícono del dock de Tome y comienza a explorar.

Consigue Tome en la Mac App Store

Siguiente artículo

Tome

Browse, query, and edit SQLite databases in a native Mac app.

Get Tome on the Mac App Store