2

Liquibase には、データベースを初期化するためのサーブレット オプションがあります。http://liquibase.org/manual/servlet_listener

フライウェイの例はありますか? それとも、動作するサーブレットでしょうか?

4

1 に答える 1

2

本当に必要なのは、flyway.migrate()起動時に実行することです。これはさまざまな方法で実現できますが、サーブレットリスナーもその1つです。

すぐに使用できるサーブレットリスナーはありませんが、独自に作成するのは簡単です。

次のようになります。

@WebListener
public class FlywayListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent sce) {
        Flyway flyway = new Flyway();
        flyway.setDataSource(...);
        flyway.migrate();
    }

    public void contextDestroyed(ServletContextEvent sce) {
    }
}

ServletContextListenerインターフェイスを実装するクラスは、最初のサーブレット(またはフィルタ)の呼び出しの前と最後の呼び出しの呼び出されます。@WebListenerアノテーションは、サーブレットコンテナに目的のリスナーを通知する1つの方法です。詳細については、このOracleチュートリアルを参照し、StackOverflowを検索してください。

于 2012-12-08T09:58:40.650 に答える