zoukankan      html  css  js  c++  java
  • liquibase之快速入门

    第一步:

      创建一个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下执行的例子:

    liquibase --driver=com.mysql.jdbc.Driver 
         --classpath=/path/to/classes 
         --changeLogFile=com/example/db.changelog.xml 
         --url="jdbc:mysql://localhost/example" 
         --username=user 
         --password=asdf 
         migrate

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

    第四步:

      检查你的数据库

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

      

  • 相关阅读:
    C++类的内存结构
    emplace与insert的区别(C++11)
    C/C++宏的奇技淫巧
    编译器对内存的分配
    利用C++实现模块隐藏(R3层断链)
    PCB标准规范
    RTC 总结
    0.96寸OLED显示屏 IIC接口(SSD1306)
    串行通信简介(SPI, IIC, UART)
    人生感悟
  • 原文地址:https://www.cnblogs.com/chris-cp/p/3818285.html
Copyright © 2011-2022 走看看