【发布时间】:2015-06-13 17:02:45
【问题描述】:
我在 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 设置为“迁移”,我的第一个脚本(名称为 V001_init.sql)并且只是执行一个简单的创建表似乎没有被执行,因为我在 blankapp_schema_version 表中没有创建表,也没有添加我当前版本的行。
此外,我的 tomcat 日志中没有错误我已将 com.google.flyway 的 logback 设置为 trace,我唯一拥有的行是:
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>
【问题讨论】:
标签: java spring postgresql tomcat flyway