首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每天20分钟,轻松学JAVA

1 什么是Flway

Flyway是一个用来版本控制Database的创建和修改的工具。就像控制JAVA的版本的工具SVN,GITHUB, Flyway是用来控制数据库metadata版本的工具。

2 Flway 如何对数据库做版本控制?

I) Flyway通过执行Locations下的sql files, 来初始化或update数据库。每个sql file都有一个version. 比如V1_0_1__Initial_Setup.sql的version为1.0.1

II) Flyway 用一个表flyway_schema_history来记录曾经跑过的所有sql files. 如

III) Flyway 会在每次Server启动的时候,运行SQL File里的sql. Flyway会记录下每个sql file的checksum. 每次Flyway运行的时候,Flyway都会check这些file的checksum是否和上次的一样。如果Flyway发现有file的checksum和上一次不一样,Flyway会报错。

3 Flyway的属性

I)Enable: true表示Flyway enable了。 当Server启动时Flyway会检查和运行SQL。 false表示Flyway disable了,反之不会运行sql.

II)Schemas: Flyway操作的schema. 一个schema为primary schema. History table将会放在这个table中。

III)Locations: 放置SQL file 的地方

IV)baselineOnMigrate: 是否在已有内容的schema上run sql. 默认为false.

V)validateOnMigrate: 是否check file 的checksum.默认为true

VI)Target: 目标sql file. Flyway会run的最后一条sql.

VII)Placeholders: 通配符.可以动态传入参数给sql file. 如schema name.

4 实例视频

I) Flway 初始化 h2 数据库

注意:h2的数据库认为所有的Schema的name都是大写的,如果我们在sql file里写的schema不是所有字母都是大写的话,将会报错

II) Flway 初始化 mySql 数据库

III) Flyway 的常用属性的使用

5 参考文档

I) Flway 官方文档:https://flywaydb.org/documentation/

II) Flway 属性: https://flywaydb.org/documentation/maven/migrate

III) 项目实例 github: https://gitee.com/thomasweb/flyway.git

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180722G1EPG500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券