我试图做一个与SchemaSpy的SQLite转储。 我得到了SchemaSpy,并且能够正确地转储一个MySQL数据库。
现在我有一个.sqlite文件(来自iOS应用程序)和一个来自Christian Werner的SQLite驱动程序( http://www.ch-werner.de/javasqlite/overview-summary.html )。 这里的一个例子解释了如何处理,但说实话 – 我不明白该怎么做。
有谁知道我如何在Windows上使用SchemaSpy? 不过,我不需要使用GUI工具。
我也遇到了这个问题,但最终使其工作。 您需要SQLite库的DLL。
你可以在这里下载,然后你可以把它放在windows安装的system32文件夹(例如C:\ Windows \ System32)
最后,不要忘记指定确切的JDBC驱动程序路径:
java -jar… -dp "D:\SchemaSpy\driver\j2sdk1.4.2_03\jre\lib\ext\sqlite.jar" …
我不知道为什么你需要得到的SQLite驱动程序。 只要告诉SchemaSpy你的数据库类型是sqlite,你会没事的。 就像是
java -jar schemaSpy.jar -t sqlite -db <你的文件> -o <输出>
通常最好是抓住SchemaSpy的最新beta版本 。 除了用-t sqlite指定数据库类型并将“数据库”指向你的.sqlite文件之外,调用应该类似于针对MySQL的运行。
SQLite驱动程序使用JNI来实现,所以你需要确保sqlite_jni.dll在你的PATH中。 要在Windows命令提示符中将其临时添加到PATH中,请执行以下操作:
设置PATH =%PATH%; directoryContainingTheJniDll
我是你提到的其中一篇文章的作者。
您需要编译schemaspy JDBC驱动程序。 它是为UNIX编写的,但是有人发送了作者在Windows环境中构建它的注意事项 。 但是,有一组文件用于预建的sqlite.jar和你需要的.dll 文件 。 一旦你在类路径上得到了它的直接。
如果这对你来说太多了,你可以随时启动sqlite3 CLI并使用.schema
命令来转储这些表,并将它们设置在一个你知道如何连接的数据库中。 或者设置和Ubuntu VM;)
我意识到这是一个老问题,但是为了记录,可以使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没有包装在[]
。 或模式设计者使用关键字作为表和列名称的错误:)