Как flyway инициирует свою базу данных

1

У меня возникли проблемы с настройкой flyway с источником данных postgresql с веб-приложением Spring java.

Похоже, что Flyway не выполнил операцию переноса, даже если я сконфигурирую так:

<bean id="flyway" class="com.googlecode.flyway.core.Flyway" init-method="migrate">
    <property name="dataSource" ref="dataSource"/>
    <property name="table" value="blankapp_schema_version" />
    <property name="disableInitCheck" value="true" />   
</bean>

Он не создает таблицу blankapp_schema_version при запуске моего сервера tomcat (v6) в eclipse. Мне пришлось изменить init-метод на "init", чтобы заставить его создать таблицу.

теперь создается таблица blankapp_schema_version, но даже если я снова установил init-метод для "переноса", мой первый скрипт (который называется V001_init.sql) и просто делает простую таблицу создания, кажется, не подвергается экспрессии, поскольку я получаю ни таблицы, ни дополнительной строки с моей текущей версией в таблице blankapp_schema_version.

Более того, я не ошибся в своих журналах tomcat. Я установил logback из com.google.flyway для отслеживания, и единственные строки, которые у меня есть:

17:25:48.822 [main] DEBUG c.g.f.c.dbsupport.DbSupportFactory - Database: PostgreSQL
17:25:48.823 [main] DEBUG com.googlecode.flyway.core.Flyway - Schema: public

и больше ничего.

В некотором контексте:

Мой bean файл dataSource связан следующим образом:

<jee:jndi-lookup jndi-name="jdbc/BlankAppDataSource" id="dataSource" /> 

И в моем META-INF/context.xml у меня есть:

<Context>
     <Resource name="jdbc/BlankAppDataSource"
            auth="Container"
            type="javax.sql.DataSource"
            username="postgres"
            password="Weblogic1"
            schema="public"
            driverClassName="org.postgresql.Driver"
            url="jdbc:postgresql://localhost:5432/rvandecaveye" 
    />
</Context>
Теги:
spring
tomcat
flyway

1 ответ

2
Лучший ответ

Если версия вашей миграции меньше или равна версии схемы в таблице blankapp_schema_version, она не будет выполнять миграцию.

Вы можете установить значение начальной версии схемы, добавив свойство initDescription.

Поэтому для запуска вашего скрипта initDescription параметр initDescription должен быть 0.

  • 0
    Спасибо, мне пришлось обновить мою версию flyway (я все еще был на 1.5)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню