しもむブログ

技術メモ。といっても高度なことは書けないので…初心者がハマったところや、ググってもすぐには出てこないようなものを書くつもり。

Flyway Command-line toolの実行結果をSLF4J & Logbackでログファイルに残す

  • Flyway Command-line toolを使ってDBをバージョン管理する。
  • 使い方は簡単なのですぐに使える。Windowsで実行するとこんな感じになる。
C:\flyway-4.0.3>flyway migrate
Flyway 4.0.3 by Boxfuse

Database: jdbc:sqlserver://WIN7X64\sqlexpress:1433;authenticationScheme=nativeAuthentication;xopenStates=false;sendTimeAsDatetime=true;trustServerCertificate=false;sendStringParametersAsUnicode=true;selectMethod=direct;responseBuffering=adaptive;packetSize=8000;multiSubnetFailover=false;loginTimeout=15;lockTimeout=-1;lastUpdateCount=true;encrypt=false;disableStatementPooling=true;databaseName=flyway;applicationName=Microsoft JDBC Driver for SQL Server;applicationIntent=readwrite; (Microsoft SQL Server 12.0)
Successfully validated 2 migrations (execution time 00:00.010s)
SQLServer does not support setting the schema for the current session. Default schema NOT changed to dbo
Creating Metadata table: [dbo].[schema_version]
Current version of schema [dbo]: << Empty Schema >>
Migrating schema [dbo] to version 1 - create table hoge
Migrating schema [dbo] to version 2 - create table fuga
Successfully applied 2 migrations to schema [dbo] (execution time 00:00.117s).
  • この便利なツールをプロダクトのDB用インストーラやアップデータ、パッチに使いたい。
  • なので標準出力だけではなく、作業ログとしてファイルにも残しておきたい。
  • ツールにはログ系のライブラリは特に入っていないし、flyway.confにもそういう設定はなさそうだが、何か良い方法はないものか。
続きを読む