DBの移行にflywayコマンドラインツールを使用しています。SQL移行をSQLディレクトリに置くと、正常に機能します。ただし、Locationsプロパティをファイルシステムのパスに設定すると、警告やエラーなしで失敗します。
例:flyway.locations=/file-path/
ファイルシステムのパスを指定するにはどうすればよいですか?移行をSQLディレクトリに入れたくありません。
DBの移行にflywayコマンドラインツールを使用しています。SQL移行をSQLディレクトリに置くと、正常に機能します。ただし、Locationsプロパティをファイルシステムのパスに設定すると、警告やエラーなしで失敗します。
例:flyway.locations=/file-path/
ファイルシステムのパスを指定するにはどうすればよいですか?移行をSQLディレクトリに入れたくありません。
これは現在まだサポートされていません:https ://github.com/flyway/flyway/issues/108
回避策として、使用するディレクトリに/sqlをシンボリックリンクできます。
次のように、「migration」ディレクトリへの絶対パスの前に文字列「filesystem:」を付ける必要があります。
String path = "/my/project/sql/migrate/";
migrateRelease("filesystem:" + path);
flyway.setLocations(location);
flyway.migrate();
Axelのおかげで、バージョン3.2.1で動作しています。注意が必要なのは、移行ファイルのバージョン番号だけです。これは、schema_versionテーブルのバージョン番号よりも大きくする必要があります。そうしないと、migrateコマンドを実行した後に次の結果になる可能性があります。
Flyway 3.2.1 by Boxfuse
Database: jdbc:mysql://...
Validated 1 migration (execution time 00:00.009s)
Current version of schema `ref_db`: 1
Schema `ref_db` is up to date. No migration necessary.