flyway简单使用
flyway就是管理数据库脚本的框架,可以根据不同版本的sql脚本,依次执行,会通过在数据库建一个表存储版本信息,在应用启动时会判断是否有需要执行的sql脚本
可以方便管理我们一些对数据库表结构的修改,在不同的环境部署,不需要部署数据库了,会自动建表修改等.
这里直接讲与spring boot集成 在idea中创建spring 工程 已经提供了这个依赖
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> </dependency>
flyway可以不需要如何配置即可使用,默认sql文件存放目录为/resources/db/migration 目录下
flyway对sql脚本有命名要求 V版本号__脚本描述.sql 默认是严格按照版本号来执行 比如你最新执行了1.3的脚本 那么你这时候放一个1.5的脚本不会执行
当然这个可以关闭,flyway会对每一个执行的脚本文件计算一个值存储于数据库中的历史表,每次启动时会计算所有已经执行过的脚本的值是否一致,不一致也会报错
接下来把flyway的所有配置贴出来
flyway.baseline-description对执行迁移时基准版本的描述.
flyway.baseline-on-migrate当迁移时发现目标schema非空,而且带有没有元数据的表时,是否自动执行基准迁移,默认false.
flyway.baseline-version开始执行基准迁移时对现有的schema的版本打标签,默认值为1.
flyway.check-location检查迁移脚本的位置是否存在,默认false.
flyway.clean-on-validation-error当发现校验错误时是否自动调用clean,默认false.
flyway.enabled是否开启flywary,默认true.
flyway.encoding设置迁移时的编码,默认UTF-8.
flyway.ignore-failed-future-migration当读取元数据表时是否忽略错误的迁移,默认false.
flyway.init-sqls当初始化好连接时要执行的SQL.
flyway.locations迁移脚本的位置,默认db/migration.
flyway.out-of-order是否允许无序的迁移,默认false.
flyway.password目标数据库的密码.
flyway.placeholder-prefix设置每个placeholder的前缀,默认${.
flyway.placeholder-replacementplaceholders是否要被替换,默认true.
flyway.placeholder-suffix设置每个placeholder的后缀,默认}.
flyway.placeholders.[placeholder name]设置placeholder的value
flyway.schemas设定需要flywary迁移的schema,大小写敏感,默认为连接默认的schema.
flyway.sql-migration-prefix迁移文件的前缀,默认为V.
flyway.sql-migration-separator迁移脚本的文件名分隔符,默认__
flyway.sql-migration-suffix迁移脚本的后缀,默认为.sql
flyway.tableflyway使用的元数据表名,默认为schema_version
flyway.target迁移时使用的目标版本,默认为latest version
flyway.url迁移时使用的JDBC URL,如果没有指定的话,将使用配置的主数据源
flyway.user迁移数据库的用户名
flyway.validate-on-migrate迁移时是否校验,默认为true.