0
私は、FlywayのCallback
メソッドを使用して、実行時にいくつかの移行を除外する方法があるのだろうかと思っていました。フライウェイはコールバックでいくつかの移行を除外します
私はすでにいくつかの作業を行っていますが、説明にはdevのマイグレーションを除外したいと思います。
ありがとうございます!
編集:フライウェイはすでにこれを行うためのツール(複数可)を提供し、移行リゾルバ
@Override
public Collection<ResolvedMigration> resolveMigrations() {
assert flyway != null;
assert flyway.getLocations() != null;
assert flyway.getLocations().length > 0;
List<ResolvedMigration> migrations = Lists.newArrayList();
for (String stringLocation : flyway.getLocations()) {
Location location = new Location(stringLocation);
Scanner scanner = new Scanner(ClassLoader.getSystemClassLoader());
Resource[] resources = scanner.scanForResources(location,
flyway.getSqlMigrationPrefix(),
flyway.getSqlMigrationSuffix());
for (Resource resource : resources) {
if (!resource.getFilename().contains("_dev")) {
ResolvedMigrationImpl resolvedMigration = extractMigrationInfo(location, resource);
resolvedMigration.setPhysicalLocation(resource.getLocationOnDisk());
resolvedMigration.setExecutor(new SqlMigrationExecutor(new PostgreSQLDbSupport(flywayConnection),
resource,
new PlaceholderReplacer(flyway.getPlaceholders(),
flyway.getPlaceholderPrefix(),
flyway.getPlaceholderSuffix()),
flyway.getEncoding()));
migrations.add(resolvedMigration);
}
}
Collections.sort(migrations, new ResolvedMigrationComparator());
}
return migrations;
}
ええ、私はそれについて知っていますが、プロジェクトが開始されたときに私たちはそれを実行できるかどうかわからなかったので、最終的に 'V1_0__dev_test.sql'のようなものを使用しました。私はちょうどリファクタリングする必要があると思う、または解決することができれば、私はリゾルバーをチェックアウトします。ありがとう! –
OK、私の実装を書いた、それは正常に動作し、その説明に '_dev'でマイグレーションを追加しませんでしたが、問題は - それはまだそれらのマイグレーションを実行する...任意のアイデア? –
あなたのリゾーバーは?ソースを投稿できますか? – markdsievers