Как интегрировать Flyway в наше весеннее пакетное приложение jdbc - PullRequest
0 голосов
/ 30 июня 2018

У нас есть подпружиненное приложение с источником данных DB2 jdbc. Хотите добавить возможности миграции Flyway в наше приложение. Я изучал эту статью , это имеет смысл, за исключением раздела, в котором упоминается, как указать «entityManagerFactory» - их пример для JPA с Hibernate, и выглядит это так:

<!-- Entity Manager Factory configuration -->
<bean id="entityManagerFactory" class="o.s.orm.jpa.LocalContainerEntityManagerFactoryBean" depends-on="flyway">
    <property name="dataSource" ref="dataSource" />
    <property name="jpaVendorAdapter">          
            <bean class="o.s.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="database" value="${jpa.database}"/>
            </bean>
    </property>
</bean>

Наше приложение представляет собой простой источник данных JDBC для db2. Как я могу определить это <bean id="entityManagerFactory", чтобы Spring распознал его как управляемый компонент? Нужно ли даже указывать конфигурацию компонента entityManagerFactory?

1 Ответ

0 голосов
/ 01 июля 2018

Нет, вам не нужно указывать bean-компонент entityMangerFactory. Миграционные пути не должны быть бобами. Это пример конфигурации для миграций с пролета:

@Configuration
public class FlywayInitializer {

  @Autowired
  private DataSource dataSource;

  @PostConstruct()
  private void startMigrations() {

    Flyway flyway = new Flyway();
    flyway.setDataSource(dataSource);
    flyway.setLocations("db/migrations");
    flyway.setSchemas("public");
    flyway.setSqlMigrationPrefix("H");
    flyway.migrate();
  }
}

Мы начинаем с создания нового объекта Flyway. javax.Sql.DataSource - единственный боб, который нужен для полета. Flyway нужны данные из этого компонента, чтобы он мог подключиться к базе данных. Затем мы настраиваем места, в которых расположены миграции, схемы для flyway (первая схема - это та, где будет создана таблица schema_version) и префикс миграции для миграций (например, мои миграции выглядят так: H1__init_db.sql ).

Существует также множество других свойств, которые можно установить. Как только вы закончите с настройкой объекта flyway, вы вызываете метод migrate для выполнения миграций.

...