有时候需要在程序启动的时候,提前建表和插入一下初始化的参数,flyaway则是优雅的做这个事情的:定义一个初始化的版本,所有比这个版本大的脚本文件均得到执行,已经执行过的脚本文件下次再启动的时候无不会再执行。
1.首先需要引入包:
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
2.其次在yml里定义基准版本,这里为0.1。
Spring
flyway:
baseline-on-migrate: true
baseline-version: 0.1
enabled: true
3.在resource下建立脚本的文件夹(db/migration)和文件名,文件名称遵循:V<version>[<SEQ>][description] 。版本号的数字间以小数点(. )或下划线( )分隔开,版本号与描述间以连续的两个下划线( )分隔开。如V1_1_0__Update.sql。简单说来就是取一个名字,这个名字由双下划线(__)分开,左边是版本号,必须大于yml里配置的基准版本号,右边注明用途,例如:
这样在spring boot程序启动的时候,会执行上图的这两个脚本,同时数据库会自动生成一张表flyway_schema_history,里面记录了版本执行情况: