derbydumpを使用してderbyDBをSQLにdumpする際のエラー対処

Blog Single

githubで公開されているderbydumpを使用して、derbyDBからSQLのdumpファイルを生成しようとした際にエラーを見つけましたのでその対処方法を掲載します。

はじめに

そもそもderbyDBとは?という方は下記の公式サイトをご覧ください。
(残念ながら日本語翻訳されているものがないですが…)
ざっくりと説明してしまうとJavaで実装されたRDBMS(Relational Database Management System)です。

エラー環境

gitとJavaをあらかじめインストールした状態から始めます。
今回発生した環境のバージョンは以下の通りです。

  • Java 10.0.1

あとはderbydumpのREADMEに記載のHow to useの手順に進めるだけ。
…のはずでしたが、6つ目の手順./gradlew jarでエラーがありました。

$ ./gradlew jar

(省略)

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '10.0.1'.

原因

derbydumpではビルドの実行にGradleというビルドシステムを使用していて、先ほどのコマンド中にダウンロードしているGradle 4.0では、Java 10.0.1に対応していないということでした。

対処方法

Gradle 4.2.1で既にバージョン対応されていたので、ダウンロードするバージョンを変更すれば良さそうです。
derbydumpの/gradle/wrapper/gradle-wrapper.propertiesでダウンロードするファイルが指定されていたのでそこを変更します。
現在の最新版は4.8.1ですのでそれを使用します。

#Tue Jul 11 13:07:57 AEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
# 6行目を以下のように修正
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip

そして先ほどの./gradlew jarを実行します。
無事ダウンロードできたようなのでこれでようやく!
…と思ったら次の手順で。

$ java -jar build/lib/derbydump-1.0-SNAPSHOT.jar
Error: Unable to access jarfile build/lib/derbydump-1.0-SNAPSHOT.jar

よくよくファイルを見に行ってみると存在していませんでした。
ダウンロードバージョンの変更でファイルも変更されていたようです。
該当ファイルらしきものがあったのでこちらで実行してみる。

$ java -jar build/libs/derbydump-1.3.jar 

無事sqlファイルが生成されました。(テーブルのCREATE文は入ってないのですね…)

derbydumpの方でエラー対応が入るまではこの方法でとりあえずは対処できますので、もしお使いになる方がいましたらご参考までに。
ただgithubに上がっているファイルの書き換えがあるので、お気をつけください。

参考

Posted by Mao Miyaji
千葉にある夢の国を愛して止まない、元「魚のお姉さん」のエンジニア。PHP, TypeScriptメインで、暇さえあれば色々な言語を一かじり。

Other Posts: