Командная строка Flyway не может найти миграции в файловой системе

Я использую инструмент командной строки flyway для миграции БД. Если я помещаю миграции SQL в каталог SQL, все работает нормально. Однако, если я установлю свойство Locations на путь в файловой системе, произойдет сбой без каких-либо предупреждений или ошибок.

например: flyway.locations=/file-path/

Как указать путь к файловой системе? Я не хочу помещать свои миграции в каталог SQL.


person Harshit Agarwal    schedule 29.11.2012    source источник


Ответы (3)


В настоящее время это еще не поддерживается: https://github.com/flyway/flyway/issues/108< /а>

В качестве обходного пути вы можете создать символическую ссылку /sql на каталог, который вы хотите использовать.

person Axel Fontaine    schedule 29.11.2012
comment
Спасибо за быстрый ответ. Поддерживает ли плагин flyway ant несколько схем с разными местами миграции для каждой из них? Я знаю, что flyway делает это в целом, но плагин ant, похоже, этого не делает. - person Harshit Agarwal; 29.11.2012
comment
Я пытался это сделать, но второй вызов flyway:migrate, похоже, использует таблицу schema_version ранее перенесенной схемы. Как заставить их использовать индивидуальную таблицу schema_version? - person Harshit Agarwal; 30.11.2012
comment
Либо схемы, либо свойства таблицы должны быть разными. - person Axel Fontaine; 30.11.2012
comment
Схемы разные. Например: рассмотрим случай со схемами S1 и S2, сначала я переношу S1, и таблица S1.schema_version обновляется, но после этого, когда я пытаюсь перенести S2, она проверяет S1.schema_version вместо S2.schema_version. - person Harshit Agarwal; 30.11.2012

Вы должны добавить префикс абсолютного пути к каталогу «миграция» со строкой «filesystem:», например:

String path = "/my/project/sql/migrate/";
migrateRelease("filesystem:" + path);
flyway.setLocations(location);
flyway.migrate();
person dokaspar    schedule 30.01.2014

Спасибо Акселю, работает над версией 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.
person Youness    schedule 28.08.2015