У меня возникли проблемы с настройкой 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>
Если версия вашей миграции меньше или равна версии схемы в таблице blankapp_schema_version, она не будет выполнять миграцию.
Вы можете установить значение начальной версии схемы, добавив свойство initDescription
.
Поэтому для запуска вашего скрипта initDescription
параметр initDescription
должен быть 0
.