Мне было интересно, есть ли способ для Flyway принять реальную миграцию SQL в виде строки или потока вместо поиска ее в пути к классам? Я создаю миграцию SQL в Java на лету и хотел бы вызвать API Flyway и передать миграцию в качестве параметра. Пожалуйста, дайте мне знать, если это возможно. Спасибо
Передача потока или строки в API Flyway вместо местоположений
Ответы (2)
Не совсем то, что вы просите, но похоже на миграции на основе Java< /a> может быть решением.
Обычно вместо V1_0__script.sql
вы пишете класс V1_0__script.java
, реализующий JdbcMigration
а>. Внутри этого класса у вас есть доступ к JDBC Connection
:
class V1_0__script implements JdbcMigration {
public void migrate(Connection connection) throws Exception {
//...
}
}
В migrate()
вы можете выполнять свои собственные SQL-запросы.
person
Tomasz Nurkiewicz
schedule
18.01.2013
Для этого нет доступного API.
Однако, если вы создаете свой SQL на лету, наверняка должна быть возможность создавать его по одному оператору за раз. Каждый оператор затем может быть выполнен с использованием параметра Connection
, который вы получаете в JdbcMigration
person
Axel Fontaine
schedule
19.01.2013
Аксель, спасибо. Позвольте мне убедиться, что я понимаю, что вы говорите. Поскольку нет возможности передать операторы в JdbcMigration, я могу создать их в классе JdbcMigration, а затем просто выполнить один класс со всеми операторами, используя API. Я думаю, это должно сработать... Я правильно понимаю ваше предложение?
- person user1411018; 21.01.2013