Cómo ver un archivo de base de datos SQLite en Mac
Encontraste un archivo .sqlite, .db o .sqlite3 en algún lugar de tu Mac, en la carpeta de soporte de una app, en un respaldo, en un proyecto que estás depurando, y quieres saber qué hay en realidad dentro. Hacer doble clic no hace nada útil. Quick Look te muestra una vista previa en blanco o texto ilegible. Necesitas un visor de archivos SQLite de verdad, y no es obvio qué herramienta usar.
Por qué no puedes simplemente abrirlo como un archivo normal
Las bases de datos SQLite son archivos binarios, no texto. Los primeros 100 bytes son un encabezado fijo: una cadena mágica que se lee SQLite format 3, seguida de campos como el tamaño de página, la codificación de texto y una cookie de esquema (schema cookie) que cambia cada vez que se altera la estructura de las tablas. Después de ese encabezado viene el dato de página real, organizado como un árbol B, y por eso un editor de texto lo representa como ruido.
Quick Look de Finder no analiza nada de esto. TextEdit lo interpreta como texto plano y te muestra caracteres en su mayoría ilegibles con unas pocas cadenas reconocibles mezcladas (los nombres de tablas, los nombres de columnas y cualquier dato de texto almacenado en las tablas tienden a sobrevivir porque SQLite almacena las cadenas en gran medida tal cual). Nada de eso te dice si el archivo es realmente válido, con qué tamaño de página se creó, o por qué alguna otra app se niega a abrirlo.
Tus opciones para mirar por dentro
La herramienta de línea de comandos sqlite3. macOS incluye sqlite3 en Terminal. Ejecuta sqlite3 yourfile.db ".schema" y obtendrás las definiciones de las tablas, o .tables para una lista rápida. Esto funciona bien si ya sabes que es una base de datos válida y quieres consultarla. Es menos útil si no estás seguro de que el archivo sea válido en primer lugar, ya que un encabezado corrupto solo produce un error críptico sin detalle alguno sobre qué está mal.
DB Browser for SQLite. Esta es la herramienta correcta si tu objetivo real es explorar las filas de las tablas, editar datos o ejecutar consultas SQL. Es gratuita, está bien mantenida y está hecha específicamente para eso. Si necesitas explorar los datos dentro de las tablas, deja de leer esto y ve por DB Browser.
Un editor hexadecimal con conocimiento de SQLite. Esta es la opción para una pregunta diferente: no “qué hay en las tablas” sino “qué es este archivo, en realidad”. Ese es el hueco que llena Hexter. Abre el archivo y se lee en solo lectura de forma predeterminada, así que no arriesgas el archivo solo por mirarlo. La pestaña Analizar reconoce el encabezado de SQLite a simple vista y desglosa los campos, tamaño de página, codificación, cookie de esquema, junto al hex en bruto, de modo que puedes confirmar que el archivo es realmente SQLite, comprobar con qué tamaño de página se construyó, o detectar un encabezado que fue truncado o sobrescrito antes de entregárselo a algo que espera una base de datos limpia.
Cuándo importa de verdad la vista de bytes en bruto
Algunas situaciones donde ver el encabezado directamente, no solo los resultados de la consulta, ahorra tiempo:
- Un archivo no abre en tu app y no estás seguro de que sea realmente SQLite. Algunas apps escriben archivos con extensión
.dbque no son SQLite en absoluto. Comprobar la cadena mágicaSQLite format 3en los primeros 16 bytes responde eso en segundos. - Estás depurando una canalización de sincronización o respaldo y sospechas que un archivo se truncó o corrompió en tránsito. Un encabezado que se corta antes de tiempo, o un campo de tamaño de página que no coincide con el tamaño real del archivo, es un diagnóstico rápido.
- Quieres confirmar la codificación de texto de una base de datos (UTF-8 vs UTF-16) antes de escribir código que la lea, sin poner en marcha una biblioteca de base de datos completa solo para hacer una pregunta.
- Estás haciendo ingeniería inversa del almacenamiento local de una app y quieres ver exactamente qué hay en el disco antes de decidir si vale la pena escribir una consulta SQL como es debido.
Cómo hacerlo
- Abre el archivo
.sqliteo.dben Hexter. Abre en solo lectura, así que no hay riesgo de modificar por accidente una base de datos que necesitas intacta. - Abre la barra lateral del Inspector y cambia a la pestaña Analizar.
- Hexter detecta el encabezado de SQLite automáticamente y te muestra los campos analizados junto a los desplazamientos de byte de donde provinieron.
- Si necesitas mirar más de cerca un campo específico, como el tamaño de página o la cookie de esquema, selecciona esos bytes en la cuadrícula hexadecimal y el Inspector te muestra la interpretación numérica directamente.
Si lo que en realidad necesitas después de eso es consultar las tablas, ahí es donde cambias a sqlite3 o DB Browser. Son las herramientas correctas para ese trabajo. Hexter es para los diez segundos anteriores, cuando solo necesitas saber qué estás viendo.
Hexter es un editor hexadecimal nativo de macOS hecho para que exactamente este tipo de inspección de archivos sea segura de forma predeterminada: solo lectura hasta que actives explícitamente la edición, con análisis de estructura integrado para archivos SQLite, PNG, ZIP, Mach-O y WAV.