我无法使用spring java web-app配置带有postgresql数据源的flyway。
即使我这样配置,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>
当我在eclipse中运行我的tomcat(v6)服务器时,它不会创建blankapp_schema_version表。我不得不将init-method更改为“init”以使他创建表。
现在创建了blankapp_schema_version表,但是即使我再次将init-method设置为“migrate”,我的第一个脚本(名称为V001_init.sql)只是做一个简单的创建表似乎没有被激活,因为我没有在blankapp_schema_version表中创建任何表,也没有使用当前版本的附加行。
此外,我的tomcat日志中没有错误我已经将com.google.flyway的logback设置为跟踪并且我唯一的行是:
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>
答案 0 :(得分:2)
如果您的迁移版本小于或等于blankapp_schema_version表中的架构版本,则它将不会运行迁移。
您可以通过添加属性initDescription
来设置初始架构版本的值。
因此,要运行V001脚本,initDescription
参数应为0
。