Posted at

schemaspyのER図で日本語テーブル名が化ける件

More than 1 year has passed since last update.


DBの定義書を自動でつくりたいよ。日本語でね。

日本語テーブル名?つかわないよ!

そんな人はスルーでお願いします…

でも、使いたくないけど、客先からの要望で…なんて人用。

ま、しょうがないですよね。自分もそうでした。


環境


  • schemaspy

  • graphviz

  • java8

  • DB(以下のものしか試してないです)


    • MySQL

    • SQLite3



  • DBのテーブル名はUTF-8で。(他の文字コードは試してないです)


とりあえず実行

ま、このへんはDBによってイロイロ。

ググればシングルバイトのテーブル名なら普通にできる設定はイッパイでてくる。

実行結果をみても、とりあえずgraphvizを使わない所は日本語で表示できてます。



java -jar ./schemaspy-6.0.0-rc1.jar -configFile path/to/config.file


問題はER図

config.fileの記述はDBのによっていろいろなんですが、公式サンプルみるとこんな感じ。

# type of database. Run with -dbhelp for details

schemaspy.t=mssql
# optional path to alternative jdbc drivers.
schemaspy.dp=path/to/drivers
# database properties: host, port number, name user, password
schemaspy.host=server
schemaspy.port=1433
schemaspy.db=db_name
schemaspy.u=database_user
schemaspy.p=database_password
# output dir to save generated files
schemaspy.o=path/to/output
# db scheme for which generate diagrams
schemaspy.s=dbo

ドキュメントのドコさがしてもフォント指定ないんですがgraphvizじたいはUTF-8に対応しているハズ。

なんですが、化けるのはなぜかとおもって出力フォルダをあさってみるとgraphviz用のdotファイルを発見。

主力フォルダ/diagramsの下の.dotファイルですね。

フォント指定がヨロシクナイ。


結論

schemaspyにわたすconfig.fileの設定に以下を追加。



schemaspy.font="日本語フォント名"



たぶん、起動引数に-font "フォント名"追加でも行けると思う。

フォント名は

windowsなら、"MS ゴシック"でも。

acrobatはいってれば"HeiseiKakuGo-W5"で、

どのOSでも日本語テーブル名でER図が出力されるかと思います。

ドキュメントにのってないんで、ソースから設定を見つけました。

なので、今後どうなるかわかりません。