在Mac上使用SQLite-manager(以XUL形式)。
如何从团队中的其他人提交的SQLite文件中区分出来并合并他的更改?
感谢。
答案 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