Como visualizar um arquivo de banco de dados SQLite no Mac
Você encontrou um arquivo .sqlite, .db ou .sqlite3 em algum lugar do seu Mac, na pasta de suporte de um app, em um backup, em um projeto que você está depurando, e quer saber o que de fato há dentro dele. Dar dois cliques não faz nada útil. A Visualização Rápida te mostra uma prévia em branco ou texto embaralhado. Você precisa de um visualizador de arquivos SQLite de verdade, e não é óbvio qual ferramenta buscar.
Por que você não pode simplesmente abri-lo como um arquivo normal
Bancos de dados SQLite são arquivos binários, não texto. Os primeiros 100 bytes são um cabeçalho fixo: uma string mágica que diz SQLite format 3, seguida de campos como tamanho de página, codificação de texto e um schema cookie que muda toda vez que a estrutura das tabelas é alterada. Depois desse cabeçalho vêm os dados de página de fato, organizados como uma b-tree, e é por isso que um editor de texto os renderiza como ruído.
A Visualização Rápida do Finder não analisa nada disso. O TextEdit interpreta o arquivo como texto simples e te mostra caracteres majoritariamente ilegíveis, com algumas strings reconhecíveis no meio (nomes de tabelas, nomes de colunas e qualquer dado de texto armazenado nas tabelas tendem a sobreviver, porque o SQLite armazena strings em grande parte como estão). Nada disso te diz se o arquivo é de fato válido, com qual tamanho de página ele foi criado, ou por que algum outro app está se recusando a abri-lo.
Suas opções para olhar por dentro
A ferramenta de linha de comando sqlite3. O macOS traz o sqlite3 no Terminal. Rode sqlite3 yourfile.db ".schema" e você terá as definições das tabelas, ou .tables para uma lista rápida. Isso funciona bem se você já sabe que é um banco de dados válido e quer consultá-lo. É menos útil se você não tem certeza de que o arquivo é válido em primeiro lugar, já que um cabeçalho corrompido só produz um erro enigmático, sem detalhe algum sobre o que está errado.
DB Browser for SQLite. Essa é a ferramenta certa se o seu objetivo de fato é navegar por linhas de tabela, editar dados ou rodar consultas SQL. É gratuito, bem mantido e feito especificamente para essa tarefa. Se você precisa explorar os dados dentro das tabelas, pare de ler isto e vá pegar o DB Browser.
Um editor hexadecimal com conhecimento de SQLite. Essa é a opção para uma pergunta diferente: não “o que há nas tabelas”, mas “o que é este arquivo, afinal”. É essa a lacuna que o Hexter preenche. Abra o arquivo e ele lê em modo somente leitura por padrão, então você não coloca o arquivo em risco só por olhá-lo. A aba Analisar reconhece o cabeçalho SQLite de imediato e destaca os campos, tamanho de página, codificação, schema cookie, ao lado do hex bruto, para que você possa confirmar que o arquivo é realmente SQLite, checar com qual tamanho de página ele foi criado, ou detectar um cabeçalho que foi truncado ou sobrescrito antes de você entregá-lo a algo que espera um banco de dados íntegro.
Quando a visão dos bytes brutos de fato importa
Algumas situações em que ver o cabeçalho diretamente, não só os resultados da consulta, economiza tempo:
- Um arquivo não abre no seu app e você não tem certeza de que é mesmo SQLite. Alguns apps escrevem arquivos com extensão
.dbque não são SQLite de jeito nenhum. Checar a string mágicaSQLite format 3nos primeiros 16 bytes responde isso em segundos. - Você está depurando um pipeline de sincronização ou backup e suspeita que um arquivo foi truncado ou corrompido no caminho. Um cabeçalho cortado antes da hora, ou um campo de tamanho de página que não bate com o tamanho real do arquivo, é um diagnóstico rápido.
- Você quer confirmar a codificação de texto de um banco de dados (UTF-8 vs UTF-16) antes de escrever código que o leia, sem subir uma biblioteca de banco de dados inteira só para fazer uma pergunta.
- Você está fazendo engenharia reversa do armazenamento local de um app e quer ver exatamente o que há em disco antes de decidir se vale a pena escrever uma consulta SQL de verdade contra ele.
Como fazer
- Abra o arquivo
.sqliteou.dbno Hexter. Ele abre em modo somente leitura, então não há risco de modificar por acidente um banco de dados que você precisa manter intacto. - Abra a barra lateral do Inspetor e mude para a aba Analisar.
- O Hexter detecta o cabeçalho SQLite automaticamente e te mostra os campos analisados ao lado dos offsets de byte de onde eles vieram.
- Se você precisar olhar mais de perto um campo específico, como o tamanho de página ou o schema cookie, selecione esses bytes na grade hexadecimal e o Inspetor te mostra a interpretação numérica diretamente.
Se o que você de fato precisa depois disso é consultar as tabelas, é aí que você muda para o sqlite3 ou o DB Browser. Eles são as ferramentas certas para essa tarefa. O Hexter é para os dez segundos antes disso, quando você só precisa saber o que está olhando.
O Hexter é um editor hexadecimal nativo do macOS, feito para tornar exatamente esse tipo de inspeção de arquivo seguro por padrão: somente leitura até você ativar a edição explicitamente, com análise de estruturas embutida para arquivos SQLite, PNG, ZIP, Mach-O e WAV.