在 Spring Boot 应用程序上使用 Flyway 时如何在 H2 中加载初始数据?

Gui*_*elo 2 java jpa h2 flyway spring-boot

我正在使用 Flyway 创建一个 Spring Boot 应用程序进行迁移,并希望使用内存数据库进行开发配置文件,但问题是每次重新启动应用程序时数据都会丢失。因此,当我的应用程序在开发配置文件中启动时,我需要插入一些数据。我尝试data.sql在 src/main/resource 上放置一个名为的文件,以便在应用程序启动时加载它,但它不起作用(它没有运行脚本)。我尝试输入INIT=runscript from 'classpath:data.sql'h2 url,但它尝试在 Flyway 迁移执行之前运行它,因此表尚不存在。谁能给我其他方法吗?

我的应用程序.yml:

spring:
  datasource:
    url: jdbc:h2:mem:testdb;IFEXISTS=FALSE
    username: sa
    password:
    driver-class-name: org.h2.Driver
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: none
    properties:
      hibernate:
        dialect: org.hibernate.dialect.H2Dialect
  flyway:
    enabled: true
Run Code Online (Sandbox Code Playgroud)

R.G*_*R.G 6

根据文档spring.flyway.locations,可以配置特定于配置文件的定制飞路。当该配置文件处于活动状态时,特定于配置文件的脚本将运行。因此配置的开发配置文件将满足此要求。

初始化脚本可以作为迁移文件夹的一部分放置,该文件夹将运行并填充数据库。

可以在这里找到一个例子