Silakan lihat Rilis SQLite 3.8.10 yang dirilis pada 7 Mei 2015. Rilis ini untuk pertama kalinya berisi sqldiff.exe program utilitas untuk menghitung perbedaan antara dua file database SQLite. Kemungkinan besar program ini juga akan menjadi bagian dari rilis mendatang.
sqldiff.exe alat baris perintah harus berfungsi untuk semua sistem operasi yang didukung dan menawarkan beberapa sakelar untuk mengubah perilaku keluarannya. Contoh penggunaan:
sqldiff [options] database1.sqlite database2.sqlite
Jika tidak ada opsi yang ditentukan, maka output dari sqldiff.exe adalah pernyataan SQL yang akan mengubah database1.sqlite
(database "sumber") ke dalam database2.sqlite
(database "tujuan").
Namun, ada juga batasan tertentu. Misalnya, sqldiff.exe utilitas (setidaknya saat ini) tidak menampilkan perbedaan dalam TRIGGER, VIEW, atau tabel virtual.
Contoh perintah dan keluaran
Saya mengambil database penyimpanan nilai kunci sederhana (db1.sqlite
) dan membuat salinannya (db2.sqlite
). Saya kemudian memasukkan satu pasangan nilai kunci ke db2.sqlite
. Setelah itu saya menjalankan perintah berikut:
sqldiff db1.sqlite db2.sqlite
dan mendapatkan output berikut:
INSERT INTO my_table(rowid,"key",value) VALUES(1,'D:\Test\Test.txt',x'aabbccdd');
UPDATE my_table_size SET counter=1 WHERE rowid=1;
Tabel my_table_size
secara otomatis diperbarui oleh TRIGGER setelah key-value pair dimasukkan ke my_table
. Saya kemudian menjalankan sqldiff.exe lagi, tapi kali ini dengan db2.sqlite
sebagai argumen pertama dan db1.sqlite
sebagai argumen kedua:
sqldiff db2.sqlite db1.sqlite
dan mendapatkan output berikut:
HAPUS DARI my_table WHERE rowid=1;
UPDATE my_table_size SET counter=0 WHERE rowid=1;
tautan unduhan sqldiff
Sejak SQLite versi 3.10.2 yang dirilis pada 20 Januari 2016, binari 32-bit untuk sqldiff dapat langsung diunduh dari Halaman Unduhan SQLite. Mereka dapat ditemukan di alat sqlite arsip untuk sistem operasi yang sesuai (lihat Biner Terkompilasi bagian). Misalnya, berikut adalah tautan ke alat sqlite arsip versi 3.39.3:
- Alat SQLite untuk Linux
- Alat SQLite untuk OS X
- Alat SQLite untuk Windows
Untuk versi SQLite sebelum versi 3.10.2, situs web SQLite menghosting binari 32-bit untuk sqldiff , tetapi tidak terhubung ke mereka. Berikut tautan ke sqldiff versi 3.8.10:
- sqldiff untuk Linux
- sqldiff untuk OS X
- sqldiff untuk Windows
Jika Anda memerlukan binari 64-bit, maka Anda harus mengunduh sumber mentah dan mengompilasinya sendiri. (Berkas sqldiff.c terletak di alat sub-direktori arsip yang berisi sumber.)
Salah satu kemungkinannya adalah dengan menggunakan sqlite3
klien baris perintah untuk mengekspor kedua database dan kemudian membedakan hasilnya. Misalnya,
sqlite3 first.sqlite .dump >first.dump
sqlite3 second.sqlite .dump >second.dump
diff first.dump second.dump