文檔:使用Flyway管理數據庫更新.note
鏈接:http://note.youdao.com/noteshare?id=d7ef6102042f58b9e2e01d9aff5d842e&sub=1677AD75832D440BA5BE61DEA45F52D9
昨天聽說了flyway,今天試了一下,整理筆記備忘。
一、項目環境簡介
1、基於Spring Boot 2.2.5.RELEASE
2、使用Spring Boot集成的flyway,不使用單獨的maven插件
二、集成步驟
1、pom.xml中添加依賴
<!-- flyway -->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
2、創建工作目錄
3、添加flyway配置
4、使用示例
4.1 假設在開發庫中增加了一個表,並且有初始化數據,使用navicat瘵新增表的結構及數據導出,命名為V2.1.1__role_copy1.sql,拷貝到db/migration目錄下
4.2 啟動項目,會自動執行V2.1.1__role_copy1.sql
4.3 再增加一個表,導出SQL,重命名為V2.1.2__message_copy1.sql,拷貝到db/migration目錄下
4.4 啟動項目,會自動執行V2.1.2__message_copy1.sql
4.5
4.6
5、命名規則
V + 版本號 +雙下划線 + 描述 + 結束符(如.sql) 。
注意:
1. 版本號位數需要一致,並且只能新增,不能修改。如V2.0執行后,新增V2.0.1是不會執行的
2. 如果db/migration中刪除了某腳本,在flyway_schema_history表中要刪除對應記錄
3. 如果某次執行失敗,下次執行前,在flyway_schema_history表中要刪除對應記錄
三、Flyway簡介
Flyway 是一款開源的數據庫版本管理工具,它更傾向於規約優於配置的方式。Flyway 可以獨立於應用實現管理並跟蹤數據庫變更,支持數據庫版本自動升級,並且有一套默認的規約,不需要復雜的配置,Migrations 可以寫成 SQL 腳本,也可以寫在 Java 代碼中,不僅支持 Command Line 和 Java API,還支持 Build 構建工具和 Spring Boot 等,同時在分布式環境下能夠安全可靠地升級數據庫,同時也支持失敗恢復等。
四、使用前后對比
1、使用前,開發整理sql腳本,運維更新到生產環境
2、使用后,開發將sql腳本打包到更新包中,項目啟動自動執行sql腳本
參考文章 :
