scalikejdbcGenでUnknown table

scala開発関連

MySQL5.6の古いシステムでscalikejdbcGenした際にはまったエラーについてまとめておきます。

エラー内容

スキーマ指定が効かないエラー

scalikejdbc.propertiesにjdbc.schemaを指定しているのに、なぜか別のDBを見に行ってしまう現象に。。。しょうがないので生成したいDBにだけアクセス可能なユーザを別途作成することで回避できますが、次にUnknown tableエラーが発生します。。。

java.sql.SQLSyntaxErrorException: Table 'backup.hogehoge_tbl' doesn't exist
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:536)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513)

Unknown table エラー

[error] (main/compile:scalikejdbcGen) java.sql.SQLSyntaxErrorException: Unknown table 'hogehoge_tbl' in information_schema
[error] Total time: 1 s, completed 2019/04/29 18:36:09

可能な限り権限を強くしてもダメでした。

解決のためにやったこと

mysql-connector-java6.0.6をmariadb-java-client1.4.+にしたらいけました・・・
参考までに以下にその時の設定ファイルを残しておきます。play2.6用の設定抜粋です

plugins.sbt

// 省略

libraryDependencies ++= (
  // ("mysql"                  %  "mysql-connector-java"           % "6.0.6") ::
  ("org.mariadb.jdbc"       %  "mariadb-java-client"            % "1.4.+") ::
  Nil
)

// 省略

// ScalikeJDBC
addSbtPlugin("org.scalikejdbc" %% "scalikejdbc-mapper-generator" % "3.2.+")

build.sbt

// 省略

// 依存ライブラリ
  // DB
  "org.scalikejdbc"        %% "scalikejdbc"                    % "3.2.+",
  "org.scalikejdbc"        %% "scalikejdbc-config"             % "3.2.+",
  "org.scalikejdbc"        %% "scalikejdbc-play-initializer"   % "2.6.0-scalikejdbc-3.2",
  // "org.mariadb.jdbc"       %  "mariadb-java-client"            % "1.4.+",
  "mysql"                  %  "mysql-connector-java"           % "6.0.6",
  "org.scalikejdbc"        %% "scalikejdbc-test"               % "3.2.+"  % Test,

// 省略

enablePlugins(ScalikejdbcPlugin)

根本原因の解決になってなくて気持ち悪いですが、model自体は生成できたので深追いするのはやめました

©2018 LLC Shimer-System.
image/svg+xml