Пытаюсь разобраться в сабжевой утилите.
Настроил через Maven - все работает: создаю новый файл с изменениями структуры, mvn flyway:migrate
, все хорошо.
Но вот захотелось мне на работающей таким образом базе сделать проверки при запуске приложения. И тут...
public static void makeMigration(String folder, String jdbc, String username, String pass) {
// Create the Flyway instance
Flyway flyway = new Flyway();
flyway.setLocations(String.format("filesystem:%s", folder));
// Point it to the database
flyway.setDataSource(jdbc, username, pass);
//flyway.setBaselineOnMigrate(true);
// Start the migration
flyway.migrate();
}
Если делаю flyway.migrate();
, то:
org.flywaydb.core.api.FlywayException: Found non-empty schema(s) "public" without metadata table! Use baseline() or set baselineOnMigrate to true to initialize the metadata table.
Если включаю flyway.setBaselineOnMigrate(true);
или делаю flyway.baseline();
, то:
org.postgresql.util.PSQLException: ОШИБКА: отношение "schema_version" уже существует
Так что ему надо?