1

Spring と統合するときにフライウェイを適切に構成するにはどうすればよいですか? プロパティを取るconfigureメソッドがあるようですが、Spring XMLからは、Propertiesインスタンスを注入する方法を提供するためにsetterメソッドが必要になります。

独自の 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 の ${} プロパティの置換を使用して、組み込みのメカニズムでプロパティ ファイルをロードすることもできますが、これにより、これらのプロパティをすべての Bean で使用できるようになり、必要なそれぞれを追加することになります。

私のラッパーはセッターを提供するので、Spring xml 構成に以下を追加できます。

<property name="configLocations" value="classpath:/META-INF/flyway.properties" />

どんな考えでも大歓迎です。

4

3 に答える 3

1

または、Flyway のSpringJdbcMigrationJdbcTemplateを使用して移行を作成することもできます。次の例は、Flyway のドキュメントからコピーしたものです。

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')");
    }
}
于 2013-04-26T17:44:28.437 に答える
1

スプリング アノテーションを使用して Flyway クラスをラップし、必要なことは何でも行う必要があります。たとえば、フライウェイのプロパティを構成します。このブログ投稿は、 http://esofthead.com/migrate-database-highly-change-environment-multiple-versions-management/の実行方法の例を示している場合があります。

于 2014-01-17T06:07:23.510 に答える