SchemaSpyでER図とDB設計書を自動生成する と SchemaSpyを既存アプリのDockerに導入する でMySQLとPostgreSQLに対して実施しましたが、
SQLite3でも試しみて、少し手こずったので、メモしておきます。
SQLite3向け設定
JDBCドライバー
前回作成したjdbcディレクトリに下記をダウンロードして設置
https://github.com/xerial/sqlite-jdbc/releases
→ sqlite-jdbc-3.36.0.1.jar
sqlite.propertiesを作成
sqlite.properties
description=SQLite connectionSpec=jdbc:sqlite:<db> driver=org.sqlite.JDBC
schemaspy.t=sqliteを指定すると下記エラーになるので、作成したのもで置き換える。
WARN - Connection Failure Failed to connect to database URL [jdbc:sqlite:../db/development.sqlite3] Failed to create any of 'SQLite.JDBCDriver' driver from driverPath 'jdbc' with sibling jars no.
schemaspy.propertiesを修正
schemaspy.properties
schemaspy.t=sqlite.properties schemaspy.dp=jdbc #schemaspy.host= #schemaspy.port= schemaspy.s=dumy schemaspy.db=../db/development.sqlite3 schemaspy.u=dumy #schemaspy.p= schemaspy.o=analysis schemaspy.cat=dumy
u(ユーザー)は何でも良いけど必要
ERROR - The following option is required: [-u | --user | user | schemaspy.u | schemaspy.user] The following option is required: [-u | --user | user | schemaspy.u | schemaspy.user]
catを追加。何か有れば良さそう
ERROR - Bad config Catalog (-cat) was not provided and unable to deduce catalog, wildcard catalog can be used -cat %
s(スキーマ)も何か有れば良さそう
ERROR - Bad config Schema (-s/-schemas) was not provided and unable to deduce schema, schema is sometimes referred to as user/owner/database
実行
% java -jar schemaspy-6.1.0.jar ____ _ ____ / ___| ___| |__ ___ _ __ ___ __ _/ ___| _ __ _ _ \___ \ / __| '_ \ / _ \ '_ ` _ \ / _` \___ \| '_ \| | | | ___) | (__| | | | __/ | | | | | (_| |___) | |_) | |_| | |____/ \___|_| |_|\___|_| |_| |_|\__,_|____/| .__/ \__, | |_| |___/ 6.1.0 SchemaSpy generates an HTML representation of a database schema's relationships. SchemaSpy comes with ABSOLUTELY NO WARRANTY. SchemaSpy is free software and can be redistributed under the conditions of LGPL version 3 or later. http://www.gnu.org/licenses/ INFO - Starting Main v6.1.0 on xxxx with PID 43435 (/Users/xxxx/workspace/rails-app-origin/schemaspy/schemaspy-6.1.0.jar started by xxxx in /Users/xxxx/workspace/rails-app-origin/schemaspy) INFO - The following profiles are active: default INFO - Found configuration file: schemaspy.properties INFO - Started Main in 2.416 seconds (JVM running for 3.233) INFO - Loaded configuration from schemaspy.properties INFO - Starting schema analysis INFO - Connected to SQLite - 3.36.0 INFO - Gathering schema details Gathering schema details...INFO - Found PK without index name created index 'admin_users_s_pk' for table 'admin_users' .INFO - Found PK without index name created index 'ar_internal_metadata_s_pk' for table 'ar_internal_metadata' .INFO - Found PK without index name created index 'versions_s_pk' for table 'versions' .INFO - Found PK without index name created index 'tests_s_pk' for table 'tests' .INFO - Found PK without index name created index 'schema_migrations_s_pk' for table 'schema_migrations' .INFO - Found PK without index name created index 'users_s_pk' for table 'users' .INFO - Found PK without index name created index 'infomations_s_pk' for table 'infomations' .(0sec) Connecting relationships..........(0sec) Writing/graphing summary.INFO - Gathered schema details in 0 seconds INFO - Writing/graphing summary INFO - Graphviz rendered set to '' ........(5sec) Writing/diagramming detailsINFO - Completed summary in 5 seconds INFO - Writing/diagramming details .......(1sec) Wrote relationship details of 7 tables/views to directory 'analysis' in 7 seconds. View the results by opening analysis/index.html INFO - Wrote table details in 1 seconds INFO - Wrote relationship details of 7 tables/views to directory 'analysis' in 7 seconds. INFO - View the results by opening analysis/index.html
% open analysis/index.html
OK。出ました!
今回のコミット内容
※序でにdatabase.ymlの書き換えだけで、MySQL/PostgreSQL/SQLiteを使えるようにしています。
https://dev.azure.com/nightonly/rails-app-origin/_git/rails-app-origin/commit/44c8267330ca6f3e562115a6063bb1925abb51da
“SchemaSpyをSQLite3に使ってみる” に対して1件のコメントがあります。