flyway java_flyway的使用
換新工作 框架很新
有些東西沒見過 現(xiàn)學一下
從 flyway開始
springboot整合教程
java寫遷移腳本
概念
用途:Flayway是一款數(shù)據(jù)庫版本控制管理工具,
支持數(shù)據(jù)庫版本自動升級,Migrations可以寫成sql腳本,也可以寫在java代碼里;
不僅支持Command Line和java api ,
也支持Build構(gòu)建工具和Spring boot,
也可以在分布式環(huán)境下能夠安全可靠安全地升級數(shù)據(jù)庫,
同時也支持失敗恢復
運行方式
首次啟動會創(chuàng)建默認名為SCHEMA_VERSION的元素局表。 表中保存了版本,描述,要執(zhí)行的sql腳本
flyway找腳本的時候默認去src/mian/resources下面的db/migration
相關(guān)命令
Migrate是指把數(shù)據(jù)Schema遷移到最新版本,在Migrate時會檢查MetaData元數(shù)據(jù)表,如果不存在就創(chuàng)建MetaData表,MetaData用于記錄數(shù)據(jù)庫歷史變更等信息;
Migrate會掃描指定文件系統(tǒng)或者classpath下的Migrations。會與MetaData中的記錄進行對比,進行版本升級;
Clean:清除掉對應(yīng)數(shù)據(jù)庫Schema中所有的對象,包括表結(jié)構(gòu),視圖,存儲過程等,clean操作在dev 和 test階段很好用;
Info:用于打印所有的Migrations的詳細和狀態(tài)信息,也是通過MetaData和Migrations完成的,可以快速定位當前的數(shù)據(jù)庫版本;
validate:驗證以及apply的Migrations是否有變更,默認開啟的;原理是對比MetaData表與本地Migrations的checkNum值,如果值相同則驗證通過,否則失敗。
BaseLine:對已經(jīng)存在數(shù)據(jù)庫Schema結(jié)構(gòu)的數(shù)據(jù)庫一種解決方案。實現(xiàn)在非空數(shù)據(jù)庫新建MetaData表,并把Migrations應(yīng)用到該數(shù)據(jù)庫;也可以應(yīng)用到已有表結(jié)構(gòu)的數(shù)據(jù)庫中也可以實現(xiàn)添加Metadata表。
repair:repair操作能夠修復metaData表,該操作在metadata出現(xiàn)錯誤時很有用
使用步驟
1.springboot來整合
2.建src/db/migration文件夾
3.建V開頭+版本號+雙下劃線+描述.sql 腳本文件
4.增加flyway的java類(執(zhí)行數(shù)據(jù)遷移和讀取配置文件)--可選
5.數(shù)據(jù)庫有了新的改動,導出新版本sql文件到db.migration 自動更新
總結(jié)
以上是生活随笔為你收集整理的flyway java_flyway的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: teledb兼容mysql5.7_mar
- 下一篇: java getstringbounds