sqlite管理工具_Liquibase 数据库版本管理工具:1.安装
1.Liquibase 是什么
粘一段官方的解釋
Track, version, and deploy database changes跟蹤、管理和應用數據庫變化
說白了,就是一個將你的數據庫腳本轉化為xml格式保存起來。
其中包含了你對數據庫的改變,以及數據庫的版本信息,方便數據的升級和回滾等操作。
目前支持:MySql、Maria DB、PostgreSQL、Oracle、SQL Server、DB2、HSQL、H2、SQLite等多種主流數據庫。
2.為什么需要Liquibase
通常在項目正常推進的情況下,我們會有:開發、測試、壓測、準生產、生產等多套環境。
伴隨著迭代發版,我們需要不斷同步多套環境的數據庫信息,如果每個環境都需要開發人員手動去修改,那么就是一場災難。
因為到最后,誰也記不得在哪個環境執行了哪個操作,結果就是測試一直在群里@開發,報錯啦!!
因此我們需要一個可以自動化維護各個環境數據庫版本差異的工具,將人力釋放出來。
這也是程序的奧義,簡化繁瑣的操作
3.配置Liquibase環境
3.1.下載Liquibase
根據自己的操作系統下載對應的二進制包,下載地址:https://www.liquibase.org/download
3.2.配置環境變量
配置方式同 Java ,將壓縮文件解壓,配置文件夾路徑到PATH路徑中。
以 Mac 為例,文件夾路徑為:/Users/jiaotd/liquibase-4.0.0-beta1
修改 ~/.bash_profile 文件,添加如下配置
export LIQUIBASE_HOME=/Users/jiaotd/liquibase-4.0.0-beta1 export PATH=$PATH:$LIQUIBASE_HOME執行 source ~/.bash_profile 加載環境變量
執行 liquibase --version 檢查時候配置成功
4.Liquibase支持的集成方式
Liquibase 支持集成的方式有多種
- Command 命令行模式
- Maven
- Ant
- Spring Boot
Maven 與 Spring Boot 類似,這里先介紹一下 Command 模式,Maven 與 Spring Boot 集成在以后的文章中再做詳細介紹。
5.核心文件
不管哪種集成方式,Liquibase 最為核心的文件就是 changelog.xml,它記錄了你對數據庫的每一步操作,Liquibase 所以的操作都依賴于 changelog.xml 文件的內容。
空的 changelog.xml 內容如下:
<?xml version="1.0" encoding="utf-8"?> <databaseChangeLogxmlns="http://www.liquibase.org/xml/ns/dbchangelog"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangeloghttp://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd"></databaseChangeLog>Liquibase 將每一步的數據庫操作定義為一個 changeSet,格式如下:
<changeSet id="test-1" author="jiaotd"><sql>create table xxx(id int(11));</sql><sqlFile path="xxx.sql"/><rollback><sql>drop table xxx;</sql><sqlFile path="xxx-rollback.sql"/></rollback> </changeSet>在 changeSet 中,你可以直接使用 標簽寫 SQL 命令,可以通過 引入外置的 SQL 文件, 標簽則是回滾時想要執行的操作。
6.核心表
Liquibase 本身擁有一個記錄當前已操作的行為記錄表:DATABASECHANGELOG
ID與AUTHOR 與 里一一對應
FILENAME:當前執行的 changeSet.xml 是哪一個
DATEEXECUTED:執行時間
ORDEREXECUTED:執行次序
EXECTYPE:執行狀態
MD5SUM:SQL 文件的MD5 校驗,請記得這個,后期將注意事項是會說到
TAG:版本號
LABELS:標簽
7.Command
Liquibase 命令行由參數+指令構成,通過 liquibase --help 可以查看具體指令、參數及作用注釋,這里截取一部分展示
通常情況下,我們對數據庫最常用的操作就是升級與回滾,對應 Liquibase 的指令就是update 與 rollback系列
7.1.update
liquibase --driver=$liquibase_driver --url=$MYSQL_DB_URL --username=$DB_USER --password=$PASSWORD --classpath=$liquibase_classpath --changeLogFile=文件路徑/master.xml update--classpath:數據庫驅動路徑
--changeLogFile :就是5中定義的 changelog.xml 文件路徑,名稱可以自定義,這里叫master.xml
執行這樣的命令就可以將你定義的數據庫操作同步到你想要同步的環境中
7.2.rollback
rollback 操作常用的有多個,分別是rollback ,rollbackToDate , rollbackCount
- rollback :將數據庫回退到指定的 tag 版本狀態,tag 是對已操作的 changSet 版本記錄,類似于 Git 的 tag,通過 liquibase tag 完成;
- rollbackToDate :將數據庫回退到指定的 date、 time 時間狀態
- rollbackCount :回退指定數量的 changSet ,每個 記為1;
舉個栗子,當前已執行的
- 執行 rollback v1.01 ,則序號8~14的操作會回滾,數據是執行了1~7操作的狀態
- 執行 rollbackToDate 2020-07-05,則時間是2020-07-05 之后的操作全部回滾
- 執行 rollbackCount 5,則從后向前數 5 個操作,10~14 將會回滾,數據是執行了1~9操作的狀態
本章簡單介紹了一下 Liquibase 的使用,下章詳細介紹 Command 的具體實踐。
Liquibase 系列文章:
2.changelog 詳解:
九人稚:數據庫版本管理之Liquibase:2.changelog 詳解?zhuanlan.zhihu.com3. changeSet 變更集詳解:
九人稚:Liquibase 數據庫版本管理工具:3. changeSet 變更集詳解?zhuanlan.zhihu.com總結
以上是生活随笔為你收集整理的sqlite管理工具_Liquibase 数据库版本管理工具:1.安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: koa --- nunjucks在Ko
- 下一篇: 商城GW-SHOP,基于 微信小程序 +