liquibase概述 **
liquibase是乙個用於跟蹤、管理和應用資料庫變化的開源的資料庫重構工具。它將所有資料庫的變化(包括結構和資料)都儲存在xml檔案中,便於版本控制。
liquibase具備如下特性:
* 不依賴於特定的資料庫,目前支援包括oracle/sql server/db2/mysql/sybase/postgresql/caché等12種資料庫,這樣在資料庫的部署和公升級環節可幫助應用系統支援多資料庫。
* 提供資料庫比較功能,比較結果儲存在xml中,基於該xml你可用liquibase輕鬆部署或公升級資料庫。
* 以xml儲存資料庫變化,其中以作者和id唯一標識乙個變化(changset),支援資料庫變化的合併,因此支援多開發人員同時工作。
* 在資料庫中儲存資料庫修改歷史(databasechangehistory),在資料庫公升級時自動跳過已應用的變化(changset)。
* 提供變化應用的回滾功能,可按時間、數量或標籤(tag)回滾已應用的變化。通過這種方式,開發人員可輕易的還原資料庫在任何時間點的狀態。
* 可生成資料庫修改文件(html格式)
* 提供資料重構的獨立的ide和eclipse外掛程式。
liquibase的核心就是儲存變化的xml,如例:
<?xml version="1.0" encoding="utf-8"?>
其中,changeset包含不同的資料庫變化,幾乎涵蓋了所有的資料庫變化型別,具體支援的型別要看api,我這裡給幾個例子:
* 建立和刪除表、檢視、儲存過程、主鍵、外來鍵、索引等
* 重新命名表、檢視、列等
* 加入列預設值、唯一約束、非空約束等
* 合併兩個列
* 在乙個表的資料的基礎上建立乙個字典表
除此之外,liquibase還允許你執行自己的sql指令碼、執行shell程式。
在ivy.xml中引入liguibase的依賴
將liquibase整合到spring框架
...編制資料庫變更檔案
我大致分了分類:
om/cdv/test/db_changelog/master.xml ——引用了下面三個檔案c
com/cdv/test/db_changelog/table.xml ——對資料庫表的更改過程
com/cdv/test/db_changelog/view.xml ——對檢視的更改過程
com/cdv/test/db_changelog/data.xml ——對資料的操作
com/cdv/test/db_changelog/master.xml如下:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
com/cdv/test/db_changelog/table.xml如下:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
com/cdv/test/db_changelog/data.xml如下:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
ok,現在啟動你的web應用
啟動後,liquibase將自動幫你建立資料庫表字段檢視等、以後資料庫結構發生任何變化,去新增changeset吧,它會幫你修改資料庫的,不需要你直接運算元據庫了。
liquibase通過在你的資料庫中增加兩個它自己表來判斷和處理資料庫的變化。
另外,liquibase還支援不同資料的的方言哦,通過在changeset中增加dbms屬性即可達到目的,比如
......
best wishes for you!
liquibase多源配置使用
因為專案使用liquibase管理資料庫版本,現在新增了新的資料來源,liquibase也需要新增配置 網上關於如何配置使用liquibase的文章很多,但是配置多個liquibase的基本找不到,最後還是在官方文件給出了解決方案 多新增乙個配置很簡單,在使用 bean的時候需要注意主資料來源的be...
liquibase判斷mysql表字段是否存在
背景 今天在部署sql 的時候,發現以前一直使用的判斷字段存在的方式不起作用了,如下 在網上找了好久方法,liquibase的資料太少,最後決定使用儲存過程去判斷,這種方法確實好用。delimiter create procedure add more to logins begin if not ...
flyway和liquibase的使用樣例
在 上我們有svn和git等諸多的版本控制方法。但是在資料庫上卻沒有相應的工具。一度導致多環境見的資料庫同步難以維持。flyway和liquibase都是常見的資料庫版本控制工具。flyway社群版的功能相對完全免費的liquibase來說簡直毫無可比性。因此免費使用者的話強烈liquibase。樣...