第一步:

  创建一个Changelog File:

 这个database  Changelog file列举了数据库中所有的改变情况,该文件是以xml为基础的,下面是一个空的xml文件:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <databaseChangeLog
  4. xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
  7. http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
  8.  
  9. </databaseChangeLog>

第二步:

  增加一个变化集;

每一个变化集都是有id属性和author属性来唯一确定的,这两个属性随着名字和Changelog文件来唯一确定哪些做出的变化,如果只用id来表明,由于id过于简单将会导致一些覆盖的产生;尤其是在很多开发者以及很多开发代码分支中,包含author属性可以尽力降低覆盖的风险;

  把每个你将要运用到你的数据库上的变化集当成原子变化,在你的变化集合中最好只包含一个改变;或者是在包含很多个改变时,可以确保你插入的多行做为单一的操作,liquibase试图尽力运行每个改变作为一次单一操作,但是很多数据库都有默认的方式,我们可以恢复某些指令;

  

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <databaseChangeLog
  4. xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
  7. http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
  8.  
  9. <changeSet id="1" author="bob">
  10. <createTable tableName="department">
  11. <column name="id" type="int">
  12. <constraints primaryKey="true" nullable="false"/>
  13. </column>
  14. <column name="name" type="varchar(50)">
  15. <constraints nullable="false"/>
  16. </column>
  17. <column name="active" type="boolean" defaultValueBoolean="true"/>
  18. </createTable>
  19. </changeSet>
  20.  
  21. </databaseChangeLog>

第三步:

  运行变化集

执行你的变化log有很多中方式,命令行,Ant, Maven, spring,一个servlet监听和CDI环境;

下面是一个mysql下执行的例子:

  1. liquibase --driver=com.mysql.jdbc.Driver \
  2. --classpath=/path/to/classes \
  3. --changeLogFile=com/example/db.changelog.xml \
  4. --url="jdbc:mysql://localhost/example" \
  5. --username=user \
  6. --password=asdf \
  7. migrate

  现在liquibase支持很多数据库,在数据库的详细类别和那些数据库驱动,url 以及classpath,请参见http://www.liquibase.org/databases.html;

第四步:

  检查你的数据库

    你将会看到你的数据库现在包含量一张名字为department的表,于此同时,还有两张表也被创建了;databasechangelog和databasechangelogelock,在databasechangelog表中包含一系列的已经运行于数据库的状态;databasechangeloglock表被用来确保两个机器不能同时改变数据库;

  

liquibase之快速入门的更多相关文章

  1. 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)

    [原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...

  2. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  3. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  4. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  5. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  7. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

  8. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

  9. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. java.el.PropertyNotFoundException解决方法

    今天在开发中遇到了java.el.PropertyNotFoundException异常,检查JSP页面.Action.Bean.都没有发现错误 在网上搜了一下可能是我的bean不是一个标准的bean ...

  2. 联想V480关闭UEFI安装Win7

       联想V480关闭UEFI安装Win7 http://www.dadclab.com/archives/3283.jiecao 故事背景 兔兔牛入了一枚Lenovo V480,预装Win8,想换成 ...

  3. BootstrapTable+KnockoutJS

    BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查   前言:之前博主分享过knockoutJS和BootstrapTable的一些基础用 ...

  4. 【转】android权限列表

    访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permiss ...

  5. Windows下如何建立以"."开头的文件夹

    Windows资源管理器不允许创建点开头的文件或文件夹,但在cmd命令提示符下是可以的: 创建命令: md d:\.myfolder .myfolder就是以点开头的文件夹的名称

  6. Hostker云主机

    Orz现在我的博客使用Hostker主机了,地址:http://wnjxyk.cn/ 速度一下子快了很多! Hostker真的是很便宜很好用的主机呢!大家可以去试一下! 注册时填写了有效邀请码的新用户 ...

  7. How to get the xpath by clicking an html element

    How to get the xpath by clicking an html element How to get the xpath by clicking an html element

  8. 一步一步学数据结构之1--n(通用树)

    今天来看大家介绍树,树是一种非线性的数据结构,树是由n个结点组成的有限集合,如果n=0,称为空树:如果n>0,则:有一个特定的称之为根的结点,它只有直接后继,但没有直接前驱:除根以外的其他结点划 ...

  9. java 基本语法元素

    单行注释:  // 多行注释: /*         */   java文档: /**JAVA文档      *注释      */   : :  类似于中文的句号.   语句块:语句块也叫做复合语句 ...

  10. android媒体--图库与API层MediaPlayer的交互

    众所周知一个媒体播放器新建的几个步骤: Mediaplayer mp = new MediaPlayer(0 mp.setDatasource(xxx); mp.setDispalyer(xxx); ...