精华内容
下载资源
问答
  • LiquiBase

    千次阅读 2018-09-19 23:57:44
    又get一个有意思的东西。现在我只是会简单的使用。后面如果有深入了解也可以继续写。...1. LiquiBase (1)pom.xml 导入依赖 (2)master.xml (3)编写表xml 2. 组件 1. LiquiBase (1)pom....

    又get一个有意思的东西。现在我只是会简单的使用。后面如果有深入了解也可以继续写。

    官方文档http://www.liquibase.org/documentation/changes/load_data.html

    目录

    1. LiquiBase

    (1)pom.xml 导入依赖

    (2)master.xml

    (3)编写表xml

    2. 组件


    1. LiquiBase

    (1)pom.xml 导入依赖

    	    <dependency>
    			<groupId>org.liquibase</groupId>
    			<artifactId>liquibase-core</artifactId>
    			<version>3.5.3</version>
    		</dependency>

    (2)master.xml

    <?xml version="1.0" encoding="utf-8"?>
    <databaseChangeLog
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
            xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
        <include file="classpath:db.liquibase/changelog/initTable.xml" relativeToChangelogFile="false"/>
    </databaseChangeLog>

    (3)编写表xml

    changeSet 的id默认为新建时的当前日期(yyyyMMddHHmm)+00*,比如 201809190930001

    <?xml version="1.0" encoding="UTF-8"?>
    <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                       xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
        http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
        <property name="now" value="now()" dbms="mysql"/>
        <changeSet id="201809191632" author="rookie">
            <createTable tableName="art_accounts" remarks="测试">
                <column name="id" type="bigint" autoIncrement="true" remarks="主键">
                   <constraints primaryKey="true" nullable="false"/>
                </column>
            </createTable>
        </changeSet>
    </databaseChangeLog>

    (4)配置 application 

    spring.liquibase.change-log=classpath:db.liquibase/master.xml

    2. 组件

    createIndex: 创建索引
    <createIndex tableName="ven_vendor_info" indexName="idx_vendor_id">
        <column name="vendor_id" />
    </createIndex>
    modifyDataType: 修改数据类型
    <modifyDataType tableName="atl_vendor_info" columnName="import_code" newDataType="varchar(50)" />
    dropColumn: 删除列
    <dropColumn tableName="atl_relation_vendor_company" columnName="is_deleted"/>
    renameColumn: 重命名列
    <renameColumn tableName="atl_vendor_type" oldColumnName="is_deleted" newColumnName="deleted"/>
    renameTable:重命名表名
    
    <renameTable oldTableName="atl_vendor_type" newTableName="ven_vendor_type"/>
    dropNotNullConstraint:删除非空约束
    <dropNotNullConstraint tableName="sys_workflow_transfer" columnName="end_date"/>
    <addNotNullConstraint tableName="sys_workflow_transfer" columnName="start_date"/>
    
     loadData: CSV文件中的数据加载到现有表
    <comment>初始化sys_area</comment>
    <loadData encoding="UTF-8"
              file="config/liquibase/init/csv/sys_area.csv"
              separator="|"
              tableName="sys_area"/>
    sys_area.csv:
    
    id|code|name|type|parent_id
    1|110000|北京|PROVINCE|0
    2|CHN012000000|天津|PROVINCE|0
    3|CHN013000000|河北省|PROVINCE|0
    4|CHN014000000|山西省|PROVINCE|0
    5|CHN015000000|内蒙古|PROVINCE|0
     customChange: 通过cvs进行初始化数据。(可以同步不同环境数据)
    
        <changeSet id="v.1.0.0_init_sysPage" author="rookie">
        <comment>初始化页面</comment>
        <customChange class="com.hand.hcf.core.handler.LiquibaseTaskChange">
            <param name="serviceBeanName" value="initBaseDataClient"/>
            <param name="paramClassName" value="com.hand.hcf.app.client.system.dto.PageListCO"/>
            <param name="serviceMethodName" value="initPageList"/>
            <param name="file" value="classpath:csv/init/sysPage.csv"/>
            <param name="separator" value=","/>
        </customChange>
        </changeSet>

    3.Exception

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is java.lang.ArrayIndexOutOfBoundsException: 1
    type类型指定错误或者未指定。(请检查column字段是否完整、正确)

    展开全文
  • liquibase

    2018-08-03 16:38:04
    1.Liquibase 是一个用户数据重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,通过执行日志文件中的修改,将数据库更新或者回滚到一致的状态。 Liquibase 支持的数据库:Oracle,MySQL,等 Liquibase ...

    1.Liquibase 是一个用户数据重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,通过执行日志文件中的修改,将数据库更新或者回滚到一致的状态。

    Liquibase 支持的数据库:Oracle,MySQL,等

    Liquibase 支持的日志文件格式:XML,JSON,SQL,YAML等。 

    以XML存储数据库变化,其中以作者和ID唯一标识一个变化(ChangSet),支持数据库变化的合并,因此支持多开发人员同时工作

    在数据库中保存数据库修改历史(DatabaseChangeHistory),在数据库升级时自动跳过已应用的变化(ChangSet)

    提供变化应用的回滚功能,可按时间、数量或标签(tag)回滚已应用的变化。通过这种方式,开发人员可轻易的还原数据库在任何时间点的状态

    换言之理解:项目可能要发布到多个环境,每个环境的数据库都不一样,那开发在开发环境对数据库的修改,怎么同步到其他环境呢:开发把对数据库的修改,抽成日志文件,然后提交到svn。然后通过Liquibase来执行这些日志文件,使的各个数据库保持在一致的状态。开发对数据库的修改的情况:增加表,增加字段,修改字段的长度,类型,给表增加记录等等。那开发做的就是针对自己对开发环境数据库的修改  写database changelog 然后提交就好了。

    指路: liquibase changelog   常用到的一些 changeset

    2.liquibase 运行中出现 INFO … Liquibase: Waiting for changelog lock....是有机器锁表了 参考 数据库重构工具 LiquiBase(5 Liquibase被锁)

    查看哪个机器锁表

    SELECT * FROM DATABASECHANGELOGLOCK;

    如果是本机锁表,解锁语句

    UPDATE DATABASECHANGELOGLOCK SET locked=0, lockgranted=null, lockedby=null WHERE id=1

     

    展开全文
  • Liquibase

    2017-12-14 20:27:00
    LiquiBase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。LiquiBase的主要特点有: 支持几乎所有主流的数据库,如...

    LiquiBase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。LiquiBase的主要特点有:

    • 支持几乎所有主流的数据库,如MySQL, PostgreSQL, Oracle, Sql Server, DB2等;
    • 支持多开发者的协作维护;
    • 日志文件支持多种格式,如XML, YAML, JSON, SQL等;
    • 支持多种运行方式,如命令行、Spring集成、Maven插件、Gradle插件等;

     

    changelog文件格式

    changelog是LiquiBase用来记录数据库的变更,一般放在CLASSPATH下,然后配置到执行路径中。
    changelog支持多种格式,主要有XML/JSON/YAML/SQL,其中XML/JSON/YAML除了具体格式语法不同,节点配置很类似,SQL格式中主要记录SQL语句,这里仅给出XML格式和SQL格式的示例,更多的格式示例请参考文档

    changelog.xml

    <changeSet author="admin" id="1496901181769-1">
        <createTable schemaName="ihome" tableName="test">
            <column autoIncrement="true" name="id" type="INT">
                <constraints primaryKey="true"/>
            </column>
            <column name="name" type="VARCHAR(10)"/>
        </createTable>
    </changeSet>

     

    changelog.sql

    --liquibase formatted sql
    --changeset daniel:16040707
    CREATE TABLE `role_authority_sum` (
      `row_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
      `role_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '关联role的role_id',
      `authority_sum` int(11) unsigned NOT NULL DEFAULT '0' COMMENT 'perms的值的和',
      `data_type_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '关联data_type的id',
      PRIMARY KEY (`row_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='角色的权限值的和,如角色有RD权限,则和为2+8=10';

     

    在执行changelog的时候,会在数据库记录执行记录,主要用了下面的两张表:

    1. databasechangelog
    2. databasechangeloglock

     

    常用的标签及命令

    1. 标签

    一个<changeSet>标签对应一个变更集,由属性id、name,以及changelog的文件路径唯一标识。changelog在执行的时候并不是按照id的顺序,而是按照changeSet在changelog中出现的顺序。

    changelog中的一个changeSet对应一个事务,在changeSet执行完后commit,如果出现错误则rollback。

     

    2. <include>与<includeAll>标签

    <include>的file属性表示要包含的changelog文件的路径,这个文件可以是LiquiBase支持的任意格式,relativeToChangelogFile如果为true,则表示file属性表示的文件路径是相对于根changelog而不是CLASSPATH的,默认为false。
    <includeAll>指定的是changelog的目录,而不是为文件,如:

    <includeAll path="com/example/changelogs/"/>

     

    注意: 目前<include>没有解决重复引用和循环引用的问题,重复引用还好,LiquiBase在执行的时候可以判断重复,而循环引用会导致无限循环,需要注意!

     

    3. 生成已有数据库的changelog

    有两种方式,一种是使用数据库工具导出SQL数据,然后changelog文件以SQL格式记录即可;另一种方式就是用generateChangeLog命令,如:

    liquibase --driver=com.mysql.jdbc.Driver \
          --classpath=./mysql-connector-java-5.1.29.jar \
          --changeLogFile=liquibase/db.changelog.xml \
          --url="jdbc:mysql://127.0.0.1:3306/test" \
          --username=root \
          --password=yourpass \
          generateChangeLog

     

    不过generateChangeLog不支持以下功能:存储过程、函数以及触发器;

     

    生成文件的路径可以设置:

    <plugin>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-maven-plugin</artifactId>
        <version>3.4.2</version>
        <configuration>
            <propertyFile>src/main/resources/liquibase.properties</propertyFile>
            <propertyFileWillOverride>true</propertyFileWillOverride>
            <!--生成文件的路径-->
            <outputChangeLogFile>src/main/resources/changelog_dev.xml</outputChangeLogFile>
        </configuration>
    </plugin>

     

    也可以配置在properties文件中:

    changeLogFile=src/main/resources/db/changelog/db.changelog-master.xml
    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&useSSL=false&jdbcCompliantTruncation=false
    username=root
    password=123456
    verbose=true
    ## 生成文件的路径
    outputChangeLogFile=src/main/resources/changelog_dev.xml

     

     

    Maven集成

    liquibase-maven-plugin的配置

    如果需要在父项目中配置子项目共享的LiquiBase配置,而各个子项目可以定义自己的配置,并覆盖父项目中的配置,则只需要在父项目的pom中将propertyFileWillOverride设置为true即可,如:

    <plugin>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-maven-plugin</artifactId>
        <version>3.4.2</version>
        <configuration>
            <propertyFileWillOverride>true</propertyFileWillOverride>
            <propertyFile>src/main/resources/liquibase.properties</propertyFile>
        </configuration>
    </plugin>
    ## 执行changelog中的变更
    liquibase:update

    ## rollback
    liquibase:rollback

    rollback有3中形式,分别是:
    - rollbackCount: 表示rollback的changeset的个数;
    - rollbackDate:表示rollback到指定的日期;
    - rollbackTag:表示rollback到指定的tag,需要使用LiquiBase在具体的时间点打上tag;

    liquibase:rollback -Dliquibase.rollbackCount=3

    rollbackDate需要注意日期的格式,必须匹配当前平台上执行DateFormat.getDateInstance()得到的格式,比如我的格式为MMM d, yyyy,示例如:
    liquibase:rollback -Dliquibase.rollbackDate="Apr 10, 2016"

    rollbackTag使用tag标识,所以需要先打tag,示例如:
    liquibase:tag -Dliquibase.tag=tag20160410

    然后rollback到tag20160410,如:
    liquibase:rollback -Dliquibase.rollbackTag=tag20160410

     

    最佳实践

    1. 如何管理changeLogs

    按照主要的release版本号管理你的changeLogs

    com
      example
        db
          changelog
            db.changelog-master.xml
            db.changelog-1.0.xml
            db.changelog-1.1.xml
            db.changelog-2.0.xml
          DatabasePool.java
          AbstractDAO.java

     

    db.changelog-master.xml

    该文件包含了所有的release版本的changeLog,并按照正确的顺序引入进来:

    <?xml version="1.0" encoding="UTF-8"?> 
    <databaseChangeLog
      xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
                          http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">
    
      <include file="com/example/db/changelog/db.changelog-1.0.xml"/> 
      <include file="com/example/db/changelog/db.changelog-1.1.xml"/> 
      <include file="com/example/db/changelog/db.changelog-2.0.xml"/> 
    </databaseChangeLog> 

     

     

    2. Managing Stored Procedures
    Try to maintain separate changelog for Stored Procedures and use runOnChange=”true”. This flag forces LiquiBase to check if the changeset was modified. If so, liquibase executes the change again.

     

     

    3. One Change per ChangeSet
    As far as possible, Avoid multiple changes per changeset to avoid failed autocommit statements that can leave the database in an unexpected state

    4. ChangeSet Ids
    Choose what works for you. Some use a sequence number starting from 1 and unique within the changelog, some choose a descriptive name (e.g. ‘new-address-table’).

    5. Document ChangeSets
    Use <comments> in the change sets. They say “A stitch in time saves nine!”

    6. Always think about rollback
    Try to write changesets in a way that they can be rolled back. e.g. use relevant change clause instead of using custom <sql> tag. Include a <rollback> clause whenever a change doesn’t support out of box rollback. (e.g. <sql>, <insert>, etc)

    7. Reference Data Management
    Leverage Liquibase to manage your Reference Data. Environment separation (DEV, QA, PROD) can be achieved using “context”. 

    8. Procedure for the developer

    • Using your favorite IDE or editor, create a new local changeSet containing the change;
    • Run Liquibase to execute the new changeSet (this tests the SQL code);
    • Perform the corresponding changes in the application code (e.g., Java code);
    • Test the new application code together with the database change;
    • Commit both the changeSet and the application code.

     

     

    问题

    'changeLogFile' in properties file is not being used by this task.

     

     

    链接

    转载于:https://www.cnblogs.com/tonyq/p/8039770.html

    展开全文
  • Liquibase Percona扩展 扩展以支持pt-online-schema-change。 此扩展替换了几个默认更改,以使用pt-online-schema-change代替SQL。 这允许执行非锁定数据库升级。 目录 支持的数据库 MySQL是唯一受支持的数据库。 ...
  • liquibase mysql_LiquiBase

    2021-02-01 09:44:07
    关于changeset具体的配置参见文档 change type.Liquibase是一个用于跟踪、管理数据库变化的开源数据库重构工具。它将数据库的所有变化(包括结构和数据)都保存在XML文件中,便于版本控制。Liquibase不依赖特定数据库...

    关于changeset具体的配置参见文档 change type.

    Liquibase是一个用于跟踪、管理数据库变化的开源数据库重构工具。它将数据库的所有变化(包括结构和数据)都保存在XML文件中,便于版本控制。Liquibase不依赖特定数据库,支持常见的12种数据库,包括:Oracle,MySQL, DB2,SQL Server,PostgreSQL,h2等。

    Spring boot中使用LiquiBase

    Spring boot内置了对Liquibase的支持,只需要在项目中引入Liquibase依赖并进行配置即可。添加依赖

    org.liquibase

    liquibase-core

    3.5.3

    添加配置

    配置Liquibase可以直接在application.properties中指定属性,也可以使用Java code来指定属性。

    -application.properties配置方式

    liquibase.change-log=classpath:config/liquibase/master.xml //存储变化的xml文件的位置

    liquibase.user=sa //访问数据库的用户名

    liquibase.password= //访问数据库的密码

    liquibase.url=jdbc:h2:file:~/.h2/testdb //访问数据库的连接地址

    liquibase.enabled=true //启用liquibase,Spring boot 2.0之后使用spring.liquibase.enabled

    liquibase.drop-first=false //默认为false,如果设置为true,liquibase将首先删除所有数据库对象的所有连接的用户。

    -Java配置方式

    package com.aop8.config;

    import javax.sql.DataSource;

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.Configuration;

    import liquibase.integration.spring.SpringLiquibase;

    @Configuration

    public class LiquibaseConfig {

    @Bean

    public SpringLiquibase liquibase(DataSource dataSource) {

    SpringLiquibase liquibase = new SpringLiquibase();

    liquibase.setDataSource(dataSource);

    liquibase.setChangeLog("classpath:config/liquibase/master.xml");

    liquibase.setContexts("development,test,production");

    liquibase.setShouldRun(true);

    return liquibase;

    }

    }配置DB change

    DB配置一般分为master配置和细节配置,master中使用include引入细节配置文件。

    -添加master.xml

    该文件被存放在src/main/resources 目录下 config/liquibase/master.xml。

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xmlns="http://www.liquibase.org/xml/ns/dbchangelog"

    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangeloghttp://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd">

    relativeToChangelogFile="false"/>

    -添加子配置文件201712022057_add_entity_Base.xml

    xmlns="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.1.xsd">

    通过上面的示例,我们已经知道在spring boot中怎么使用liquibase。由上可知,databaseChangeLog中会包含多个changeSet,Liquibase会在一个transaction中执行一个changeSet。执行上面的配置文件,会在DB中生成数据表tb_member,同时会生成表databasechangelog和databasechangeloglock。前者记录database上执行的所有statements,后者用于确保两台机器不会同时修改database。

    Liquibase执行时会检查表databasechangelog,从而只执行没有执行过的changeSet。

    Liquibase构件讲解

    databasechangelog中包含元素include,property,changeSet,preConditions。

    -preConditions

    preConditions作用于databaseChangelog或changeSet来控制执行。changelog level的precoditions应用于所有的changeSet,包含include进来的changeSet。preConditions条件满足,按顺序执行其中的changeSet和include;preConditions条件不满足,失败退出并解释失败的原因。

    下面是使用preConditions的示例。只有database type为oracle且username为SYSTEM时才执行该changelog。同时,只有oldtable中没有数据时才能drop table。

    xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.8"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.8http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.8.xsd">

    select count(*) from oldtable

    Comments should go after preCondition. If they are before then liquibase

    usually gives error.

    下面是常见的判断结果:

    当出现上面的结果时,可以进行一些处理。

    当结果为onFail或onError时,可执行下面操作:

    当结果为onUpdateSQL时,可执行下面操作:

    条件之间可以使用AND/OR/NOT进行拼接来构建复杂的环境,默认为and。下面为示例。

    可用的precoditions包括下面item:

    、、、、、、、、、、等。

    -property

    Liquibase允许动态替换changelog中的参数,参数一般使用${}表示。参数值的搜索顺序:a. Liquibase runner的参数; b.JVM系统参数; c. changelog中提供的参数。

    property具有下面的属性,设置context或dbms,参数只会在这些context或dbms中使用。

    下面是property的示例。

    -changeSet

    changeSet将database changes组合在一起,使用id,author以及changelog file path来唯一识别。

    Liquibase顺序执行changelog中的changeSet,根据表databasechangelog判断id/author/filepath是否已经执行过,若执行过则跳过该changeSet,除非指定runAlways为true. 当changeset执行完,在表databasechangelog插入一行来记录id/author/filepath以及changeset的MD5sum值。

    Liquibase通常在一个transaction中执行changeSet。

    下面是changeSet具有的属性。

    changeSet中可以包含如下的sub-tags。

    其中,rollback tag用来描述怎么rollback change,可以使用SQL、change tags或之前changeSet的reference。

    // Use SQL

    drop table testTable

    // Use change tag

    // Use change set

    Liquibase执行changeSet时会计算check sum并保存在DB中。当check sum不匹配时,说明有人修改了changeSet,Liquibase将会报错并退出。若想忽略该错误,可将id/author/filepath对应的check sum设置为null,这样,下次执行时会生成新的check sum。设置runOnChange为true,当check sum不同时都会重新执行。

    -include

    用来在root change log file中引入其他的change log file。示例如下。

    xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">

    include具有如下属性。

    include目前具有重复引用和循环引用的问题。重复引用因为不会执行已经执行过的changeSet而自动解决。

    详情参见文章include。

    -contexts

    Liquibase使用contexts作为tag来限制changeSet是否执行,可将changeSet进行分组。若不设置context,该changeSet将总是执行。context可以具有任意名称且大小写不敏感。

    下面是使用context的示例。

    可以使用and,or,!以及()来组合context,优先级顺序! > and > or。context也可以用,分隔,优先级比较高。test, qa and master等价于(test) or (qa and master)。

    -changes

    Liquibase中提供了很多可以作用于database的changes。Table/View

    包括create, drop, rename table/view/column.index

    包括create,drop index/procedure/primary key/foreign key/unique constraint/not null constraint/default valueinsert/delete

    下面hi创建table的示例。

    remarks="A String"

    schemaName="public"

    tableName="person"

    tablespace="A String">

    详情参见文章changes .

    执行Liquibase

    Liquibase可以on demand执行,也可以自动执行。On demand执行的方式包括command line, Ant, Maven。自动执行的方式包括servlet listener, spring listener。更多信息参见文章Running。

    更多关于Liquibase的资料参见Document . Special care exist project , Log trim

    展开全文
  • Liquibase 3.4.2

    2018-10-30 11:52:57
    Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。 Liquibase具备如下特性: * 不依赖于特定的数据库,目前支持...
  • Liquibase帮助数百万团队跟踪,版本化和部署数据库架构更改。 该存储库包含Liquibase的主要源代码。 有关产品,项目如何运行以及您如何做出贡献的更多信息,请参见。 快速开始 。 变更日志 。 想帮忙? 是否要...
  • liquibase3

    2018-03-01 14:35:26
    liquibase数据库版本工具,用于数据库版本的维护,数据库管理的svn
  • liquibase.rar

    2020-04-24 18:35:46
    可以运行的liquibase
  • Liquibase MongoDB扩展 目录 介绍 这是对MongoDB支持的Liquibase扩展。 结果是替代了现有的MongoDB演化工具。 它们中的大多数基本上是 shell方法的包装器, 方法从MongoDB 4.2开始不推荐使用。 为了调用特定于...
  • introduce liquibase

    2020-12-01 15:29:32
    <div><p>I think we should introduce liquibase into our stack. I think there are a few things to check on first, but there are some compelling reasons: <ul><li>the custom solution we have in the travis...
  • 在项目中引入liquibase过程:1、父项目 pom.xml 中添加依赖mysqlmysql-connector-java5.1.30org.liquibaseliquibase-core3.5.52、添加liquibase.properties文件#liquibasechangeLogFile=src/main/resources/...
  • Liquibase tutorial

    2020-12-09 11:05:52
    <div><p>Fixes #5989. <ul><li>Added new tutorial on using Liquibase with CRDB.</li><li>Updated tooling tutorials ToC.</li></ul>该提问来源于开源项目:cockroachdb/docs</p></div>
  • Liquibase Migrator是一个简单的shell脚本,建立在Liquibase的基础上,并提供了一个包装器,可简化使用Liquibase管理迁移的过程。 Liquibase迁移器也可以作为Docker Image获得。 请查看以获取更多详细信息。 指令 ...
  • LiquiBase笔记

    2019-06-10 09:55:17
    LiquiBase笔记 参考资料: Liquibase Liquibase的简单使用 Spring Boot使用Liquibase最佳实践 liquibase使用 LiquiBase概述及(spring boot 入门配置) Liquibase小知识 简介 LiquiBase是一个用于数据库重构和迁移...
  • Liquibase学习

    2021-03-09 23:49:02
    Liquibase学习1)概述:2)基本使用① Liquibase编写规范:② **SpringBoot整合Liquibase** 1)概述: iquibase 是一个用于跟踪,管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据...
  • LiquiBase 使用

    千次阅读 2018-11-20 10:40:35
    首先来了解下liquibase是什么 Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制,代码有先进的管理工具git,为啥...
  • Liquibase integration

    2020-12-09 05:01:57
    <p>I opened this issue to discuss the Liquibase integration. I saw your changes on develop and I see some problems on what you've done. But I'm assuming that is a temporary situation and it ...
  • liquibase.structure.core.Index.setTable(Lliquibase/structure/core/Relation;)Lliquibase/structure/core/Index; java.lang.NoSuchMethodError: liquibase.structure.core.Index.setTable(Lliquibase/structure/...
  • liquibase安装解压下载slf4j-api-1.7.25.jar,logback-core-1.2.3.jar,logback-classic-1.2.3.jar,放到解压包的lib/目录下配置环境变量LIQUIBASE_HOME=把liquibase加入到环境变量运行# liquibbase --helphttp://...
  • liquibase详解

    2020-10-17 19:36:02
    liquibase是一个用于跟踪、管理和应用数据库变化的开源数据库重构工具。它将所有数据库的变化(包括数据和结构)都保存到XML文件中,便于版本控制。 liquibase特性 不依赖于特定的数据库,目前支持包括Oracle/Sql/...
  • 目录liquibase是什么liquibase的特性liquibase与SpringBoot整合1.pom文件2.application.yaml文件3.目录执行的顺序 db.changelog-master.yml——>db.changelog-1.0.0.yml——>20200505.yml官网 liquibase是什么...
  • liquibase 使用

    2019-09-13 19:41:54
    为什么选择 liquibase 虽然 github 上,flyway 对比 liquibase,在 star 上有一定领先(2018-10-10 19:07:14 星期三),但是 liquibase 有如下优点: 跨数据库的类型,不管是 mysql/oracle/mssql 等都支持 多文件.....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,557
精华内容 622
关键字:

liquibase