比较2个SQLite数据库

bxgwgixi  于 2023-02-09  发布在  SQLite
关注(0)|答案(3)|浏览(331)

我想比较2 SQLite数据库,以检查是否需要在客户端计算机上更新。
我真的不知道我应该怎么做。我应该做一个内部版本ID还是比较文件大小(这可能不是一个好主意,因为我认为文件大小不会在我编辑数据库的任何时候改变)。
有人知道我该怎么做吗?
谢谢大家!

3xiyfsfu

3xiyfsfu1#

您可以尝试使用SQLite的.dump命令 * 转储 * 每个SQLite数据库:

$ sqlite3 /path/to/database1 .dump > database1.sql
$ sqlite3 /path/to/database2 .dump > database2.sql

然后比较生成的文件。如果您的两个数据库非常相似,一个简单的diff可能会显示任何差异,* 例如 *:

$ diff -u database1.sql database2.sql

希望这有帮助!

g2ieeal7

g2ieeal72#

对于最初的问题有点晚,但可能对其他人有帮助。
在Windows上你可以使用KS DB Merge Tools for SQLite。我是这个工具的作者。比较DB对象定义和数据。免费版本可用,功能很好,适合比较/比较的需要。
EDIT 2022-06-29我已经制作了这个工具的基于web wasm的只区分版本:https://ksdbmerge.tools/for-sqlite-online
编辑日期:2022年2月21日:接受。dump答案适用于许多情况,但可能报告误报更改。以下是this问题的转储结果:x1c 0d1x两列都是主键的一部分,因此从数据模型的Angular 来看,数据是相同的,但转储是不同的。我的工具使用主键来比较数据,因此在这种情况下不会报告任何更改。

ux6nzvsh

ux6nzvsh3#

您可以使用sqldiff
在Debian或基于Debian的系统(可能还有其他Linux系统)上,安装sqlite3时会默认安装它:apt install sqlite3
在MacOS上,可以使用Homebrew:brew install sqldiff

相关问题