我正在尝试使用SchemaSpy创建一个sqlite转储。 我启动并运行了SchemaSpy,并且能够正确地转储MySQL数据库。
现在我有一个.sqlite文件(来自iOS应用程序)和一个来自Christian Werner(http://www.ch-werner.de/javasqlite/overview-summary.html)的sqlite驱动程序。一个关于here的例子解释了如何使用它,但说实话 - 我不明白该怎么做。
是否有人知道如何在Windows上使用SchemaSpy?但是,我没有必要使用GUI工具。
答案 0 :(得分:2)
我也遇到了这个问题,但终于让它发挥了作用。您需要SQLite库的DLL。
您可以下载它here,然后您可以将它放在Windows安装的system32文件夹中(例如C:\ Windows \ System32)
最后,不要忘记指定确切的JDBC驱动程序路径:
java -jar… -dp "D:\SchemaSpy\driver\j2sdk1.4.2_03\jre\lib\ext\sqlite.jar" …
答案 1 :(得分:0)
我想知道你为什么需要获得sqlite驱动程序。只有tell SchemaSpy your DB type是sqlite,你一定会好的。像
这样的东西java -jar schemaSpy.jar -t sqlite -db< your file> -o< output>
答案 2 :(得分:0)
通常最好抓住latest beta version of SchemaSpy。调用应类似于针对MySQL运行,除非您使用 -t sqlite 指定数据库类型并将“数据库”指向.sqlite文件。
SQLite驱动程序使用JNI进行实现,因此您需要确保sqlite_jni.dll在您的PATH中。要在Windows命令提示符中临时将其添加到PATH:
设置PATH =%PATH%; directoryContainingTheJniDll
答案 3 :(得分:0)
我是你提到的其中一篇文章的作者。
您需要编译schemaspy JDBC驱动程序。它是为UNIX编写的,但有人发送了作者notes on building it in a Windows environment。但是有一组files for windows prebuilt与你需要的sqlite.jar和.dll。一旦你在类路径上得到它就直截了当。
如果这对您来说太过分了,您可以随时启动sqlite3 CLI并使用.schema
命令转储表,并将它们设置在您知道如何连接的数据库中。或者设置和Ubuntu VM;)
答案 4 :(得分:0)
我意识到这是一个老问题,但是为了记录,有可能使SchemaSpy使用Xerial SQLite JDBC驱动程序,没有太大的困难,可以按照{{上的说明为它滚动一个新的.properties文件。 3}}
您真正需要做的就是复制现有的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没有将它们包装在[]
中的错误。或者模式设计者将关键字用作表名和列名的错误:)