LiquiBase实战总结

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,如例:

 

 
    
        
            
                
            
            
                
            
            
        
     

其中,changeSet包含不同的数据库变化,几乎涵盖了所有的数据库变化类型,具体支持的类型要看API,我这里给几个例子:

* 创建和删除表、视图、存储过程、主键、外键、索引等

* 重命名表、视图、列等

* 加入列缺省值、唯一约束、非空约束等

* 合并两个列

* 在一个表的数据的基础上创建一个字典表

除此之外,Liquibase还允许你运行自己的Sql脚本、执行Shell程序。

在ivy.xml中引入Liguibase的依赖

?xml version="1.0" encoding="UTF-8"?>


        ...
        
        ...
        

        ...

    

将Liquibase集成到spring框架


    ...

    
    
        
    

    
    
        
        
        
    

编制数据库变更文件

我大致分了分类:
  1. om/cdv/test/db_changelog/master.xml ——引用了下面三个文件c
  2. com/cdv/test/db_changelog/table.xml ——对数据库表的更改过程
  3. com/cdv/test/db_changelog/view.xml ——对视图的更改过程
  4. com/cdv/test/db_changelog/data.xml ——对数据的操作

  • com/cdv/test/db_changelog/master.xml如下:


    
    
    

  • com/cdv/test/db_changelog/table.xml如下:



    

    
        
            
            
            
        
        
            
            
            
            
            
            
            
            
            
            
            
        

    
        
            
        
        
    

    
        
        
            
        
    
  • com/cdv/test/db_changelog/data.xml如下:



    

        
        
            
            
        
        
            
            
        

        
        
            
            
            
            
            
            
        
        
            
            
            
            
            
            
        
    

OK,现在启动你的Web应用

启动后,Liquibase将自动帮你创建数据库表字段视图等、以后数据库结构发生任何变化,去添加ChangeSet吧,它会帮你修改数据库的,不需要你直接操作数据库了。
Liquibase通过在你的数据库中增加两个它自己表来判断和处理数据库的变化。
另外,Liquibase还支持不同数据的的方言哦,通过在ChangeSet中增加dbms属性即可达到目的,比如
    
        ...
    

    
        ...
    


Best Wishes For You!


你可能感兴趣的:(数据库)