如何区分2个SQLite文件?

Tra*_*Guy 22 ide sqlite diff

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

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

谢谢.

nes*_*esv 30

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

$ diff sqlite-file-1.sql sqlite-file-2.sql > sqlite-patch.diff
$ patch -p0 sqlite-file-1.sql sqlite-patch.diff
Run Code Online (Sandbox Code Playgroud)

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

$ man diff
$ man patch
Run Code Online (Sandbox Code Playgroud)

编辑:好的,这是整个演练.

首先,转储数据库:

$ sqlite test1.sql .dump > test1.sql.txt
$ sqlite test2.sql .dump > test2.sql.txt
Run Code Online (Sandbox Code Playgroud)

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

$ diff -u test1.sql.txt test2.sql.txt > patch-0.1.diff
Run Code Online (Sandbox Code Playgroud)

最后,要应用补丁:

$ patch -p0 test1.sql.txt patch-0.1.diff
Run Code Online (Sandbox Code Playgroud)

  • 用户可能需要sqlite3而不是sqlite. (4认同)
  • 如果您修改已包含数据的架构,这不会中断吗?例如,如果添加字段并希望将附加字段修补到现有数据库. (2认同)

Ber*_*mos 11

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

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

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

  • 配对行的内容的任何差异都作为UPDATE输出.
  • 在行不能被配对的数据库是作为DELETE操作输出.
  • 在各行的目的地是不能被配对的数据库是插页的输出.

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

  • 无需编译,它可以在[下载页面](https://www.sqlite.org/download.html)上作为预编译二进制文件使用 (2认同)