首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flyway和spring集成

Flyway和spring集成
EN

Stack Overflow用户
提问于 2013-04-17 14:43:15
回答 3查看 3.9K关注 0票数 1

与Spring集成时,如何正确配置flyway?我看到有一个获取属性的configure方法,但是在spring XML中,它需要一个setter方法来提供一种注入properties实例的方法。

我可以编写自己的Pojo来将配置委托给flyway实例,但不知何故,我感觉好像遗漏了什么。

下面是我的配置:

代码语言:javascript
复制
<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配置中:

代码语言:javascript
复制
<property name="configLocations" value="classpath:/META-INF/flyway.properties" />

任何想法都很感谢。

EN

回答 3

Stack Overflow用户

发布于 2013-04-27 01:30:00

Spring的MethodInvokingFactoryBean应该可以做你想做的事情。

票数 1
EN

Stack Overflow用户

发布于 2013-04-27 01:44:28

或者,您可以使用Flyway的SpringJdbcMigration创建基于JdbcTemplate的迁移。下面的示例是从Flyway documentation

代码语言:javascript
复制
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')");
    }
}
票数 1
EN

Stack Overflow用户

发布于 2014-01-17 14:07:24

你应该使用spring注解和包装Flyway类,然后做任何你想做的事情。例如,配置flyway属性。这篇博文可能会给你一个如何做http://esofthead.com/migrate-database-highly-change-environment-multiple-versions-management/的例子

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16053284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档