我想在我的Spring Boot项目中使用Flyway作为数据库迁移处理的首选方式(使用当前的V1.2.1.RELEASE)。
到目前为止这工作正常但是使用JDBC DataSource与Spring Security的集成似乎会覆盖Flyway机制。
遵循简单的方案:
问题: Flyway迁移脚本不会按预期在启动时执行。
可能原因:如果使用Spring Boot项目至少使用JPA,似乎Flyway只在启动时执行。由于Spring Security基于普通的JDBC,我试图临时使用Spring Boot docs(第68.3章)中描述的基于JDBC的数据库初始化方案,但是(如文档所述)这种方式就像“穷人方法”我也非常希望将Flyway用于包含用户/组/权限信息的这些表。
答案 0 :(得分:1)
好的,经过进一步调查后我发现了问题:
实际上,在标准的Spring Boot项目中,安全上下文在任何基于Flyway的迁移发生之前都已初始化。
通常这不是一个大问题,但我也使用AuthenticationManagerBuilder
来创建默认的admin
用户。这似乎是创建这样一个初始用户帐户的错误方法。