飞路迁移后运行data.sql文件

时间:2019-08-29 11:12:39

标签: mysql spring-boot flyway

在我的Spring启动项目中,我维护sql/query的{​​{1}}版本。由于某些原因,我需要加载一些我不想在飞行版本上添加的初始数据。对于这些数据,我正在使用flyway脚本创建相关表。因此,要加载初始数据,我必须在flyway执行该脚本后运行flyway文件。 flyway运行脚本后,如何确定运行data.sql文件? 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

data.sql自动针对嵌入式数据库运行。

对于MySQL,您需要将以下属性添加到application.properties文件中:

spring.datasource.initialization-mode=always

编辑:

要在Flyway运行了迁移之后申请,您可以使用Flyway的可重复迁移,因为它们总是最后一次应用。 https://flywaydb.org/documentation/migrations#repeatable-migrations

或者作为另一种选择,您可以使用CommandLineRunner并以编程方式获取和执行SQL文件。例如:

import org.springframework.boot.CommandLineRunner;

@Component
public class DatabaseMigration implements CommandLineRunner {

  @Value("classpath:data.sql")
  private Resource dataFile;

  @Override
  public void run(String... strings) {
    // read file and execute with JdbcTemplate
    // ...
  }
}