我正在使用Flyway进行迁移以创建Spring Boot应用程序,并希望将内存数据库用于开发配置文件,但是问题是,每次重新启动应用程序时,数据都会丢失。因此,当我的应用程序在开发配置文件中启动时,我需要插入一些数据。我试图在应用程序启动时在src / main / resource上放置一个名为data.sql
的文件以弹簧加载该文件,但它不起作用(它没有运行脚本)。我试图将INIT=runscript from 'classpath:data.sql'
放在h2网址中,但它试图在Flyway迁移执行之前运行它,因此该表尚不存在。谁能给我另一种方法吗?
我的application.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
每documentation,可以配置特定于轮廓的自定义飞行路线spring.flyway.locations
。特定于配置文件的脚本在该配置文件处于活动状态时运行。因此,配置的开发人员配置文件可以满足此要求。
初始化脚本可以作为迁移文件夹的一部分放置,该文件夹将运行并填充数据库。
可以找到一个例子here