How can I diff 2 SQLite files?

血红的双手。 提交于 2019-11-28 04:43:54

I believe you could use the following, in combination:

$ diff sqlite-file-1.sql sqlite-file-2.sql > sqlite-patch.diff
$ patch -p0 sqlite-file-1.sql sqlite-patch.diff

I hope that works for you. Otherwise, I highly suggest consulting the man-pages:

$ man diff
$ man patch

EDIT: Alright, here's the whole walk-through.

First, dump the databases:

$ sqlite test1.sql .dump > test1.sql.txt
$ sqlite test2.sql .dump > test2.sql.txt

Next, generate a diff file:

$ diff -u test1.sql.txt test2.sql.txt > patch-0.1.diff

And, finally, to apply the patch:

$ patch -p0 test1.sql.txt patch-0.1.diff

We can use the sqldiff Utility Program:

https://www.sqlite.org/sqldiff.html

It will compare the source to the destination databases and generate SQL commands to make source equivalent to destination.

  • Any differences in the content of paired rows are output as UPDATEs.
  • Rows in the source database that could not be paired are output as DELETEs.
  • Rows in the destination database that could not be paired are output as INSERTs.

We have to download the sources and compile it, from the tool folder.

Maybe using this tool: http://download.cnet.com/SQLite-Diff/3000-10254_4-10894771.html ? But you can use the solution provided by @indienick provided you first dump the binary sqlite database with something like: sqlite x.db .dump > output.sql

Hope this helps, Moszi

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!