如何比较 2 个 SQLite 文件?

问题描述 投票:0回答:4

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

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

谢谢。

sqlite ide diff
4个回答
31
投票

我相信您可以组合使用以下内容:

$ 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

16
投票

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

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

它将比较源数据库和目标数据库并生成 SQL 命令以使源数据库等于目标数据库。

  • 配对行内容中的任何差异都会作为 UPDATE 输出。
  • source数据库中无法配对的行输出为 删除。
  • destination
  • 数据库中无法配对的行是 输出为 INSERT。
我们必须从工具文件夹中下载源代码并编译它。


1
投票
http://download.cnet.com/SQLite-Diff/3000-10254_4-10894771.html

? 但是您可以使用 @indienick 提供的解决方案,前提是您首先使用以下内容转储二进制 sqlite 数据库:sqlite x.db .dump > output.sql

希望这有帮助,
莫兹


0
投票
https://ksdbmerge.tools/for-sqlite-online

适用于与 wasm 兼容的浏览器,包括 Mac 上的 Safari。 我是该工具的作者,它是我的 SQLite 桌面工具的 uno 平台端口。 与我能找到的少数其他在线工具不同 - 它不会将您的数据上传到服务器以生成数据差异。然而,它上传模式来处理其余的逻辑。

截至 2022 年 6 月,它是仅 diff 工具,网络版本不会生成任何同步脚本。

© www.soinside.com 2019 - 2024. All rights reserved.