如何区分2个SQLite文件?

时间:2011-01-02 20:27:44

标签: sqlite ide diff

在Mac上使用SQLite-manager(以XUL形式)。

如何从团队中的其他人提交的SQLite文件中区分出来并合并他的更改?

感谢。

3 个答案:

答案 0 :(得分:30)

我相信你可以结合使用以下内容:

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

我希望这对你有用。否则,我强烈建议您查阅手册页:

$ man diff
$ man patch

编辑:好的,这是完整的演练。

首先,转储数据库:

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

接下来,生成一个diff文件:

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

最后,要应用补丁:

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

答案 1 :(得分:11)

我们可以使用sqldiff实用程序:

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

它会将源与目标数据库进行比较,并生成SQL命令以使源与目标数据库等效。

  
      
  • 配对行内容的任何差异都将输出为UPDATE。
  •   
  • 无法配对的数据库中的行输出为   删除。
  •   
  • 目标数据库中无法配对的行   输出为INSERT。
  •   

我们必须从工具文件夹下载源代码并进行编译。

答案 2 :(得分:1)

也许使用此工具:http://download.cnet.com/SQLite-Diff/3000-10254_4-10894771.html? 但您可以使用@indienick提供的解决方案,前提是您首先使用以下内容转储二进制sqlite数据库:sqlite x.db .dump> output.sql

希望这有帮助, Moszi