liquibase的使用

本文介绍Liquibase在项目中用于数据库版本控制的应用。通过引入Liquibase依赖,配置master.xml并创建变更历史文件,实现数据库更新历史记录管理。详细步骤包括依赖引入、XML配置、历史记录文件设置及Spring配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用:数据库版本更新历史记录。每次启动项目,都会去锁住数据库,检查是否有数据库的变更。

使用:

第一步:引入坐标

<dependency>

 <groupId>org.liquibase</groupId>

 <artifactId>liquibase-core</artifactId>

</dependency>

第二步: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:liquibase/changelog/changelog-20180821.xml"/>
</databaseChangeLog>

第三步:历史记录changelog-20180821.xml文件

<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="autoIncrement" value="true" dbms="mysql"/> 

    <changeSet id="1" author="sunguodong">
        <comment>增加机械图标icon</comment>
        <sql>
           ALTER TABLE `app_mach_type`
           ADD COLUMN `icon` VARCHAR(50) NULL DEFAULT NULL COMMENT '机械图标' AFTER         
           `first_letter`;
        </sql>
    </changeSet>

    <changeSet id="2" author="sunguodong">
        <comment>增加机械图标icon</comment>
        <sql>
           ALTER TABLE `app_mach_type`
           ADD COLUMN `icon` VARCHAR(50) NULL DEFAULT NULL COMMENT '机械图标' AFTER 
          `first_letter`;
        </sql>
    </changeSet>
</databaseChangeLog>

第四步:

@Configuration
@EnableConfigurationProperties(DataSourceProperties.class)
public class DataSourceConfig {

    @Autowired
    private DataSourceProperties properties;

    @Bean
    public DataSource dataSource() {
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(properties.getUrl());
        datasource.setUsername(properties.getUsername());
        datasource.setPassword(properties.getPassword());
        datasource.setDriverClassName(properties.getDriverClassName());
        datasource.setValidationQuery("select 1");
        datasource.setValidationQueryTimeout(60000);
        return datasource;
    }

    @Bean
    public SpringLiquibase liquibase() throws SQLException {

        SpringLiquibase liquibase = new SpringLiquibase();
        liquibase.setDataSource(dataSource());
        liquibase.setChangeLog("classpath:liquibase/master.xml");
        liquibase.setShouldRun(true);
        liquibase.setDropFirst(false);
        return liquibase;
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值