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