Java - 比较两个sqlite数据库文件

时间:2014-07-03 14:38:39

标签: java database sqlite

情况是我们正在生成一个sqlite数据库作为输出。

我想查看所述数据库是否等于预期的数据库文件。

到目前为止,我一直在使用sqlite3生成转储,然后按照此问题中的建议比较文件:How to compare two sqlite databases on linux

这适用于我们的目的,但是我注意到我正在为linux使用sqlite3可执行文件。我使用以下代码创建转储:

// call sqlite3 .dump
Process p = Runtime.getRuntime().exec(executeCommand);

这会导致测试在Windows环境中失败:

java.io.IOException: Cannot run program "C:\[...]": CreateProcess error=193, 
    %1 is not a valid Win32 application
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
at java.lang.Runtime.exec(Runtime.java:617)

我想我可以简单地编写一堆查询,或者包含所有sqlite3可执行文件,只检查操作系统并将其隐藏在界面后面,但我想我先问一下是否有人有更简单的解决方案,或者甚至是一种完全避免问题的不同方法。

1 个答案:

答案 0 :(得分:0)

我理解这一点的方式是你要确保不同系统上的SQLite数据库中的数据库模式(即表,列等)和数据本身是相同的。您应该使用许多数据库比较工具之一。

SchemaCrawler for SQLite就是这样一个免费的跨平台工具,用于使用人类可读的纯文本格式执行数据库模式和数据差异。

Sualeh Fatehi,SchemaCrawler