2021年07月04日

DBeaver 21.1.1+MariaDBで、日本語カラム名に設定された外部制約が表示されない

[2024/6/18追記 この不具合はずっと前に解消済みです。昔こんな不具合があったんだよ、というメモとしてお読みください。]

DBeaver、ちょー便利。

ただ日本語テーブル・日本語カラム名を持つ MariaDB なDBを開くと、DDLでは確かに定義されている外部制約がまるっと表示されないという状況が以前からありまして。H2 Databaseでは普通に表示されるのになーと思いながら使ってました。取りあえず表示だけなので。

ですが最近になって、MariaDB なDBについてDBeaverのER図を使いたいとなった時にどうしてもこの「外部制約がまるっと表示されない」という点が障害になってしまって。なんとかならんもんかといろいろ試したわけですよ。

結論は、日本語カラム名のときに外部制約が表示されない(DBeaverで、文字化けした日本語カラム名を外部制約先として探しに行こうとしてエラーになっている)、というものでした。
H2 Databaseでは普通に表示されるしER図も問題ないので、MariaDBを(もしかしたらMySQLも)扱う時のみの問題のようです。
日本語カラム名を使うという仕様なので困るー。

結局どうしたかと申しますと。MariaDBからDDL吐いて、SQLを修正してH2 Databaseに取り込みましたですよ。ER図を出すためだけに。

そのうち修正されるとは思いますが、この不具合を見つけて少なくとも年単位でそのままですので、issuesに登録しないと下手したらずっとこのままと言う可能性も。とはいえGitHubアカウント作らないとissuesに登録できない、というのも面倒だのう。

[2021/9/16追記]
workaround.
file.encoding に utf-8 を設定すると良し。

外部制約の表示が出来ていないときに、エラーウィンドウにDBeaverのエラーが吐かれていたのでそれを見ると。
utf-8データをMS932に解釈したときの皆様おなじみの文字が出てきていたわけですよ。
MariaDB/MySQLのドライバはutf8系のDBからはテーブル名をutf-8で返す、というのは調べればすぐにわかって。
そーなると大体は file.encoding が原因だろう、と設定してみたら、案の定でした。

posted by Μεω. at 22:31| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス:

コメント: [必須入力]

※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/188815460
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック