Hexter

Cara Melihat File Basis Data SQLite di Mac

Anda menemukan file .sqlite, .db, atau .sqlite3 di suatu tempat di Mac Anda, di folder dukungan sebuah aplikasi, di cadangan, di proyek yang sedang Anda debug, dan Anda ingin tahu apa sebenarnya isinya. Klik ganda tidak melakukan apa pun yang berguna. Quick Look menunjukkan pratinjau kosong atau teks berantakan. Anda memerlukan penampil file SQLite yang sesungguhnya, dan tidak jelas alat mana yang harus dipakai.

Mengapa Anda tidak bisa membukanya seperti file biasa

Basis data SQLite adalah file biner, bukan teks. 100 byte pertama adalah header tetap: sebuah string magic yang terbaca SQLite format 3, diikuti field seperti ukuran halaman, encoding teks, dan schema cookie yang berubah setiap kali struktur tabel diubah. Setelah header itu datang data halaman sebenarnya, disusun sebagai b-tree, itulah sebabnya editor teks menampilkannya sebagai karakter acak.

Quick Look di Finder tidak mengurai apa pun dari ini. TextEdit menafsirkannya sebagai teks biasa dan menunjukkan sebagian besar karakter yang tidak terbaca dengan beberapa string yang dikenali bercampur di dalamnya (nama tabel, nama kolom, dan data teks apa pun yang disimpan dalam tabel cenderung bertahan karena SQLite menyimpan string sebagian besar apa adanya). Tidak satu pun dari itu memberi tahu Anda apakah file benar-benar valid, dengan ukuran halaman berapa ia dibuat, atau mengapa aplikasi lain menolak membukanya.

Pilihan Anda untuk melihat isinya

Alat baris perintah sqlite3. macOS menyertakan sqlite3 di Terminal. Jalankan sqlite3 yourfile.db ".schema" dan Anda akan mendapatkan definisi tabel, atau .tables untuk daftar cepat. Ini bekerja baik jika Anda sudah tahu itu basis data yang valid dan Anda ingin melakukan kueri. Kurang berguna jika Anda tidak yakin file itu valid sejak awal, karena header yang korup hanya menghasilkan galat kriptik tanpa detail tentang apa yang salah.

DB Browser for SQLite. Ini adalah alat yang tepat jika tujuan Anda memang menelusuri baris tabel, menyunting data, atau menjalankan kueri SQL. Aplikasi ini gratis, terawat baik, dan dibangun khusus untuk pekerjaan itu. Jika Anda perlu menjelajahi data di dalam tabel, berhenti membaca ini dan ambil DB Browser.

Hex editor dengan kesadaran SQLite. Ini adalah pilihan untuk pertanyaan berbeda: bukan “apa isi tabelnya” tetapi “file ini sebenarnya apa”. Itulah celah yang diisi Hexter. Buka file dan ia membaca dalam mode baca-saja secara default, jadi Anda tidak membahayakan file hanya dengan melihatnya. Tab Analyze mengenali header SQLite begitu terlihat dan menguraikan field-nya, ukuran halaman, encoding, schema cookie, di samping hex mentah, sehingga Anda dapat memastikan file benar-benar SQLite, memeriksa dengan ukuran halaman berapa ia dibangun, atau menemukan header yang terpotong atau tertimpa sebelum Anda menyerahkannya ke sesuatu yang mengharapkan basis data yang bersih.

Diagram yang menunjukkan 100 byte pertama sebuah file SQLite dipecah menjadi field header: string magic, ukuran halaman, encoding, dan schema cookie, di samping byte hex mentah yang ditampilkan Hexter.
100 byte pertama file SQLite mana pun adalah header tetap. Hexter membacanya langsung dari byte mentah.

Kapan tampilan byte mentah benar-benar penting

Beberapa situasi di mana melihat header secara langsung, bukan sekadar hasil kueri, menghemat waktu:

  • File tidak mau terbuka di aplikasi Anda, dan Anda tidak yakin itu benar-benar SQLite. Beberapa aplikasi menulis file dengan ekstensi .db yang sama sekali bukan SQLite. Memeriksa string magic SQLite format 3 di 16 byte pertama menjawabnya dalam hitungan detik.
  • Anda sedang men-debug pipeline sinkronisasi atau cadangan dan menduga sebuah file terpotong atau korup saat transit. Header yang terpotong, atau field ukuran halaman yang tidak cocok dengan ukuran file sebenarnya, adalah diagnostik yang cepat.
  • Anda ingin memastikan encoding teks sebuah basis data (UTF-8 vs UTF-16) sebelum menulis kode yang membacanya, tanpa menjalankan pustaka basis data lengkap hanya untuk menanyakan satu hal.
  • Anda sedang merekayasa balik penyimpanan lokal sebuah aplikasi dan ingin melihat persis apa yang ada di disk sebelum memutuskan apakah layak menulis kueri SQL yang benar terhadapnya.

Cara melakukannya

  1. Buka file .sqlite atau .db di Hexter. File terbuka dalam mode baca-saja, jadi tidak ada risiko memodifikasi basis data yang perlu Anda jaga keutuhannya secara tidak sengaja.
  2. Buka sidebar Inspector dan beralih ke tab Analyze.
  3. Hexter mendeteksi header SQLite secara otomatis dan menunjukkan field yang telah diuraikan di samping offset byte asalnya.
  4. Jika Anda perlu melihat lebih dekat field tertentu, seperti ukuran halaman atau schema cookie, pilih byte tersebut di grid hex dan Inspector menunjukkan interpretasi numeriknya secara langsung.

Jika yang sebenarnya Anda butuhkan setelah itu adalah melakukan kueri terhadap tabel, di situlah Anda beralih ke sqlite3 atau DB Browser. Itulah alat yang tepat untuk pekerjaan itu. Hexter untuk sepuluh detik sebelum itu, saat Anda hanya perlu tahu apa yang sedang Anda lihat.

Hexter adalah hex editor macOS native yang dibangun untuk membuat inspeksi file semacam ini aman secara default: baca-saja hingga Anda secara eksplisit mengaktifkan penyuntingan, dengan penguraian struktur bawaan untuk file SQLite, PNG, ZIP, Mach-O, dan WAV.