我正在使用Hibernate JPA开发我的JAX-RS应用程序,使用hibernate.hbm2ddl.auto='create-drop'
之类的设置在postgresql db中创建表。
显然,这在生产中是灾难性的。
最近,我发现了Flyway,并想尝试一下。它有一些迁移变更的方法,比如命令行或API。
如果我没有弄错,命令行方法要求我单独执行更改,而API方法将自动执行迁移。但是,JAXRS应用程序中的main
函数在哪里?
希望我的问题足够明确。
答案 0 :(得分:2)
如Flyway Docs中所述,您可以使用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) {}
}
希望这会有所帮助。