2015 年 5 月 7 日にリリースされた SQLite Release 3.8.10 をご覧ください。このリリースには初めて sqldiff.exe が含まれています。 2 つの SQLite データベース ファイルの違いを計算するためのユーティリティ プログラム。おそらく、このプログラムは将来のリリースにも含まれるでしょう。
sqldiff.exe コマンドライン ライン ツールは、サポートされているすべてのオペレーティング システムで動作し、その出力動作を変更するためのいくつかのスイッチを提供します。使用例:
sqldiff [options] database1.sqlite database2.sqlite
オプションが指定されていない場合、sqldiff.exe の出力 database1.sqlite
を変換する SQL ステートメントです。 (「ソース」データベース) を database2.sqlite
に (「宛先」データベース)
ただし、特定の制限もあります。たとえば、sqldiff.exe ユーティリティ (少なくとも現在) は、TRIGGER、VIEW、または仮想テーブルの違いを表示しません。
コマンドと出力の例
シンプルなキー値ストア データベース (db1.sqlite
) を使用しました。 ) を作成し、そのコピーを作成しました (db2.sqlite
)。次に、1 つのキーと値のペアを db2.sqlite
に挿入しました .その後、次のコマンドを実行しました:
sqldiff db1.sqlite db2.sqlite
次の出力が得られました:
<ブロック引用>
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;
テーブル my_table_size
キーと値のペアが my_table
に挿入された後、TRIGGER によって自動的に更新されました .次に、sqldiff.exe を実行しました 繰り返しますが、今回は db2.sqlite
で 最初の引数として db1.sqlite
2 番目の引数として:
sqldiff db2.sqlite db1.sqlite
次の出力が得られました:
<ブロック引用>
DELETE FROM my_table WHERE 行 ID=1;
UPDATE my_table_size SET counter=0 WHERE rowid=1;
sqldiff ダウンロード リンク
2016 年 1 月 20 日にリリースされた SQLite バージョン 3.10.2 以降、sqldiff の 32 ビット バイナリは SQLite ダウンロード ページから直接ダウンロードできます。それらは sqlite ツールにあります。 対応するオペレーティング システムのアーカイブ (プリコンパイル済みバイナリを参照) セクション)。たとえば、sqlite ツールへのリンクは次のとおりです。 バージョン 3.39.3 のアーカイブ:
- Linux 用の SQLite ツール
- OS X 用の SQLite ツール
- Windows 用の SQLite ツール
バージョン 3.10.2 より前の SQLite バージョンの場合、SQLite Web サイトは sqldiff の 32 ビット バイナリをホストします。 、しかしそれらにリンクしません。 sqldiff へのリンクは次のとおりです。 バージョン 3.8.10 の:
- Linux 用の sqldiff
- OS X 用の sqldiff
- Windows 用の sqldiff
64 ビットのバイナリが必要な場合は、生のソースをダウンロードして自分でコンパイルする必要があります。 (ファイル sqldiff.c ツールにあります ソースを含むアーカイブのサブディレクトリ)
1 つの可能性は、sqlite3
を使用することです。 コマンド ライン クライアントを使用して両方のデータベースをエクスポートし、出力を比較します。たとえば、
sqlite3 first.sqlite .dump >first.dump
sqlite3 second.sqlite .dump >second.dump
diff first.dump second.dump