Hibernate 在何处执行Flyway.migrate()?

Hibernate 在何处执行Flyway.migrate()?,hibernate,jax-rs,flyway,Hibernate,Jax Rs,Flyway,我正在使用Hibernate JPA开发我的JAX-RS应用程序,设置为Hibernate.hbm2ddl.auto='create-drop'以在我的postgresql数据库中创建表 显然,这在生产中是灾难性的 最近,我发现了Flyway,并想尝试一下。它有几种迁移更改的方法,如命令行或API 如果我没有弄错的话,命令行方法要求我单独执行更改,而API方法将自动执行迁移。但是,JAXRS应用程序中的main函数在哪里 希望我的问题足够清楚。如中所述,您可以使用API方法开始迁移,如: Fly

我正在使用Hibernate JPA开发我的JAX-RS应用程序,设置为
Hibernate.hbm2ddl.auto='create-drop'
以在我的postgresql数据库中创建表

显然,这在生产中是灾难性的

最近,我发现了Flyway,并想尝试一下。它有几种迁移更改的方法,如命令行或API

如果我没有弄错的话,命令行方法要求我单独执行更改,而API方法将自动执行迁移。但是,JAXRS应用程序中的
main
函数在哪里

希望我的问题足够清楚。

如中所述,您可以使用API方法开始迁移,如:

Flyway flyway = new Flyway();
flyway.setDataSource(...);
flyway.migrate();
唯一必要的是在web应用程序初始化过程中运行此代码段。为此,请使用标准Servlet方法,例如:

@WebListener
public class AppStartupListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        Flyway flyway = new Flyway();
        // configure datasource
        flyway.setDataSource(...);
        flyway.migrate();
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {}

}
希望这会有所帮助