如何配置flyway-play模块,以便在Hibernate启动之前进行迁移

时间:2019-05-14 08:54:03

标签: playframework flyway

我有一个使用JPA / Hibernate和flyway-play的播放应用程序。我遵循了https://github.com/flyway/flyway-play上的说明。

当我第一次使用空数据库启动应用程序时,出现以下错误:

[warn] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1146, SQLState: 42S02
[error] org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Table 't_users' doesn't exist 
[debug] application - Directory for migration files found. db/migration/default
[error] application - 

! @7bomi5e22 - Internal server error, for (GET) [/] ->   play.api.UnexpectedException: Unexpected exception[CreationException: Unable to create injector, see the following errors:

    1) Error injecting constructor, java.lang.RuntimeException: JPA transaction failed
...

在flyway-play执行SQL脚本填充数据库之前,Hibernate似乎开始运行(第一个错误)。然后,flyway执行脚本,但是之后,JPA仍然看不到表(第二个错误)

然后,如果我再次启动服务器,则可以正常工作,因为现在所有表都已创建。

有没有一种方法可以配置应用程序,以便在休眠之前启动flyway?

0 个答案:

没有答案