flyway版本号_数据库版本管理工具-flyway
flyway產生背景
在日常開發中,經常遇到數據庫變更,字段增減調整,需要維護多個不同數據庫時是十分痛苦的事情.代碼可以使用svn,git等工具進行管理,那么數據庫的版本可以使用Flyway 一款小工具,就可以大大簡化這方面的工作。官方網站
介紹
flyway支持大部分主流的數據庫,Oracle,SQL Server MySQL等;
并且擁有命令行工具,Maven,Gradle插件等;
配置簡單,實用方便,支持Sql及java配置,這里寫一個簡單的java配置。
需要明白的幾個概念:
版本:對數據庫的每一次變更可稱為一個版本。
遷移:Flyway把數據庫結構從一個版本更新到另一個版本叫做遷移。
可用的遷移:Flyway的文件系統識別出來的遷移版本。
已經應用的遷移:Flyway已經對數據庫執行過的遷移。
使用
需要使用Flyway核心jar包;可直接下載flyway-core-3.2.1.jar。
在項目中創建文件夾 src/dbmigration, 默認src/db/migration,可以在配置中進行修改。
對Flyway進行數據庫配置,這里使用spring配置文件配置,也可以使用java對象進行配置,
然后,就完成了簡單配置了,在dbmigration文件夾下創建sql文件,比如:V1_0_1__初始化.sql,V1_0_2__修改表.sql等,其中sql腳本文件需要按照一定的規則來命名,能夠讓flyway檢測并執行。
命名規則也能進行定義比如prefix、separator、suffix,默認prefix是V(執行一遍,并且版本號唯一,如果有重復就會報錯)或R(重復執行,不需要版本號),separator是雙下劃線__,suffix是.sql。V開頭+版本號+雙下劃線+描述。
新版本更改腳本,版本數字大于之前的版本就可以了。
注意
在啟動tomcat啟動后 加載配置文件運行flyway組件 對數據庫版本更新,它在維護更新時會在數據庫中新建表 schame_version 用來對sql腳本版本升級進行維護,一份sql文件對應一條數據,所以對數據庫版本升級時,會根據該表查詢進行操作,如果沒有記錄,則會執行該sql文件,如果存在數據則不執行,在對當前數據庫中sql腳本只會執行一次,
如果出現異常例如:org.flywaydb.core.api.FlywayException: Schema “xxx” contains a failed migration to version 1.1.043 !則表示數據庫沖突,需要把表 schame_version 相應記錄刪除,并且保證sql腳本操作不會與該數據庫沖突。每次版本更新 schame_version 都會保存運行的結果。
總結
以上是生活随笔為你收集整理的flyway版本号_数据库版本管理工具-flyway的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 摩根斯坦利面试题库_经验 | 金融公司摩
- 下一篇: 代码chaid_[转载]经典决策树之SA