6

我正在尝试使用 SchemaSpy 进行 sqlite 转储。我启动并运行了 SchemaSpy,并且能够正确转储 MySQL 数据库。

现在我有一个 .sqlite 文件(来自一个 iOS 应用程序)和一个来自 Christian Werner 的 sqlite 驱动程序(http://www.ch-werner.de/javasqlite/overview-summary.html)。这里的一个例子解释了如何使用它,但老实说 - 我不明白该怎么做。

有人知道我如何在 Windows 上使用 SchemaSpy 吗?不过,我没有必要使用 GUI 工具。

4

5 回答 5

3

我也遇到了这个问题,但最终成功了。您需要 SQLite 库的 DLL。

你可以在这里下载它,然后你可以把它放在你的windows安装的system32文件夹中(例如C:\Windows\System32)

最后,不要忘记指定确切的 JDBC 驱动程序路径:

java -jar… -dp "D:\SchemaSpy\driver\j2sdk1.4.2_03\jre\lib\ext\sqlite.jar" …
于 2011-07-12T12:34:18.557 回答
1

我是您提到的其中一篇文章的作者。

您需要编译 schemaspy JDBC 驱动程序。它是为 UNIX 编写的,但有人向作者发送了关于在 Windows 环境中构建它的说明。但是有一组用你需要的 sqlite.jar 和 .dll预构建的 windows 文件。一旦你在类路径上得到了它,它就很简单了。

如果这对您来说太多了,您可以随时启动 sqlite3 CLI 并使用.schema命令转储表,并将它们设置在您知道如何连接的数据库中。或者设置和 Ubuntu VM ;)

于 2011-05-11T15:16:01.947 回答
1

我意识到这是一个老问题,但为了记录,可以让 SchemaSpy 使用 Xerial SQLite JDBC 驱动程序,没有很大的困难,通过为它滚动一个新的 .properties 文件,遵循http://schemaspy上的说明.sourceforge.net/dbtypes.html

您真正需要做的就是复制现有的 sqlite.properties,将其重命名为 sqlite-xerial.properties 并更改相关行;例如:

driver=org.sqlite.JDBC

description=SQLite-Xerial

driverPath=sqlite-jdbc-3.7.2.jar

Xerial 驱动程序不需要 JNI DLL 文件,并且还具有正确获取任何配置的 FK 关系的好处——至少在我测试过的 SQLite 3 数据库中是这样。

当引用也是关键字的表或列名时,它确实会引发一些警告,但这可能是 SchemaSpy 的错误,因为没有将它们包装在[]. 或者架构设计者使用关键字作为表名和列名的错误:)

于 2013-01-09T09:31:48.283 回答
0

通常最好获取SchemaSpy 的最新 beta 版本。调用应该类似于针对 MySQL 运行,除了您使用-t sqlite指定数据库类型并将“数据库”指向您的 .sqlite 文件。

SQLite 驱动程序使用 JNI 来实现,因此您需要确保 sqlite_jni.dll 在您的 PATH 中。在 Windows 命令提示符中临时将其添加到 PATH:

设置 PATH=%PATH%;directoryContainingTheJniDll

于 2011-04-20T16:44:31.373 回答
0

我确实想知道为什么您需要获取 sqlite 驱动程序。只要告诉 SchemaSpy 你的数据库类型是 sqlite 就可以了。就像是

java -jar schemaSpy.jar -t sqlite -db <你的文件> -o <输出>

于 2011-04-18T20:29:57.763 回答