与Spring集成时,如何正确配置flyway?我看到有一个获取属性的configure方法,但是在spring XML中,它需要一个setter方法来提供一种注入properties实例的方法。
我可以编写自己的Pojo来将配置委托给flyway实例,但不知何故,我感觉好像遗漏了什么。
下面是我的配置:
<bean
id="flyway"
class="com.googlecode.flyway.core.Flyway"
init-method="migrate"
lazy-init="false"
depends-on="dataSource"
>
<property name="dataSource" ref="dataSource" />
<property name="locations" value="classpath:/META-INF/migrations" />
</bean>我想为迁移配置提供一个专用的属性文件,如下所示:
https://github.com/flyway/flyway/blob/master/flyway-commandline/src/main/assembly/flyway.properties
从javadoc中我可以看到,我可以设置大多数属性。我可以使用spring ${}属性替换,并使用内置的mechs加载属性文件,但这将使这些属性对所有bean都可用,并且我将添加所需的每个bean。
我的包装器将提供一个setter,这样我就可以将以下内容添加到我的spring xml配置中:
<property name="configLocations" value="classpath:/META-INF/flyway.properties" />任何想法都很感谢。
发布于 2013-04-27 01:30:00
Spring的MethodInvokingFactoryBean应该可以做你想做的事情。
发布于 2013-04-27 01:44:28
或者,您可以使用Flyway的SpringJdbcMigration创建基于JdbcTemplate的迁移。下面的示例是从Flyway documentation
import com.googlecode.flyway.core.api.migration.spring.SpringJdbcMigration;
import org.springframework.jdbc.core.JdbcTemplate;
public class V1_2__Another_user implements SpringJdbcMigration {
@Override
public void migrate(JdbcTemplate jdbcTemplate) throws Exception {
jdbcTemplate.execute("INSERT INTO test_user (name) VALUES ('Obelix')");
}
}发布于 2014-01-17 14:07:24
你应该使用spring注解和包装Flyway类,然后做任何你想做的事情。例如,配置flyway属性。这篇博文可能会给你一个如何做http://esofthead.com/migrate-database-highly-change-environment-multiple-versions-management/的例子
https://stackoverflow.com/questions/16053284
复制相似问题