2

Liquibase 有一个 servlet 选项来初始化数据库。http://liquibase.org/manual/servlet_listener

Flyway有这样的例子吗?或者,更好的工作 servlet?

4

1 回答 1

2

你真正想要的是flyway.migrate()在启动时运行。这可以通过多种方式来实现,Servlet 监听器就是其中之一。

没有开箱即用的 servlet 侦听器,但您可以自己动手制作。

它应该看起来像这样:

@WebListener
public class FlywayListener implements ServletContextListener {

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

    public void contextDestroyed(ServletContextEvent sce) {
    }
}

在第一个 servlet(或过滤器)调用之前和最后一次调用之后调用实现该ServletContextListener接口的类。注释是通知您的 Servlet 容器您的预期侦听器的一种方式。有关详细信息,请参阅此 Oracle 教程搜索 Stack Overflow@WebListener

于 2012-12-08T09:58:40.650 回答