代码编织梦想

源码分析:

class LiquibaseChangelogMissingFailureAnalyzer extends AbstractFailureAnalyzer<ChangeLogParseException> {

	private static final String MESSAGE_SUFFIX = " does not exist";

	@Override
	protected FailureAnalysis analyze(Throwable rootFailure, ChangeLogParseException cause) {
		if (cause.getMessage().endsWith(MESSAGE_SUFFIX)) {
			String changelogPath = extractChangelogPath(cause);
			return new FailureAnalysis(getDescription(changelogPath),
					"Make sure a Liquibase changelog is present at the configured path.", cause);
		}
		return null;
	}

	private String extractChangelogPath(ChangeLogParseException cause) {
		return cause.getMessage().substring(0, cause.getMessage().length() - MESSAGE_SUFFIX.length());
	}

	private String getDescription(String changelogPath) {
		return "Liquibase failed to start because no changelog could be found at '" + changelogPath + "'.";
	}

}

LiqubaseDatabaseInitliazer:

class LiquibaseDatabaseInitializerDetector extends AbstractBeansOfTypeDatabaseInitializerDetector {

	@Override
	protected Set<Class<?>> getDatabaseInitializerBeanTypes() {
		return Collections.singleton(SpringLiquibase.class);
	}

}

整理jar 包:
package org.springframework.boot.liquibase;

二。使用:
LiquiBase 是一个数据库重构和迁移的开源框架,通过日志的方式来记录数据库的变更。通过执行日志文件中的修改,将数据库更新或回滚到达一致的状态。

三。使用步骤:

<!-- liquibase -->
<dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-core</artifactId>
</dependency>

<!--mysql jdbc驱动 -->
<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<version>8.0.27</version>
</dependency>

2.2、创建SpringBoot配置文件来指定一些配置文件地址
LiquibaseConfig.java
@Configuration
public class LiquibaseConfig {

@Bean
public SpringLiquibase liquibase(DataSource dataSource) {
    SpringLiquibase liquibase = new SpringLiquibase();
    //设置数据源
    liquibase.setDataSource(dataSource);
    //sql文件位置
    liquibase.setChangeLog("classpath:liquibase/master.xml");
    return liquibase;
}

}

  • application.properties
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
在这里插入代码片

2.3、创建配置文件

<includeAll path="liquibase/sql/" relativeToChangelogFile="false"/>
<include file="liquibase/sql/service-v1.sql" relativeToChangelogFile="false"/>
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiamaocheng/article/details/126917898

spring boot 技术学习 索引-爱代码爱编程

  一。使用 入门篇: 构建第一个SpringBoot工程; 配置篇     数据库篇   spring boot 整合 jdbc:  spring boot 整合 myibtis:   springboot整合Redis: 构架文档篇 springboot集成swagger2,构建优雅的Restful API 消息队列 s

Spring boot 更改常量的做法-爱代码爱编程

SpringBoot @Value读取properties文件的属性 SpringBoot 读取properties文件的属性,可以有以下两种方式:   1.配置配置常量 2.使用SpringBoot @value 注解的 3.引用的SpringBoot 的@value 参数   一、@Value注解 SpringBoot在applicat

【Liquibase】liquibase与SpringBoot整合-爱代码爱编程

目录 liquibase是什么liquibase的特性liquibase与SpringBoot整合1.pom文件2.application.yaml文件3.目录官网 liquibase是什么 liquibase是一个用于跟踪,管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。

yml配置文件、加载顺序、配置原理-爱代码爱编程

SpringBoot学习之路(五)- yml配置文件、加载顺序、配置原理 目录概 述SpringBoot 初步开始创建方式总结:相关工具如下:分析:小结:参考资料和推荐阅读 LD is tigger forever,CG are not brothers forever, throw the pot and shine forever.

消息转换器HttpMessageConverter 分析,自定义消息转换器-爱代码爱编程

SpringBoot整合SpringMVC之Servlet,Filter,Listener 目录概 述配置使用FastJson 插件返回JSON数据首先要引入fastjson的依赖:1 引入fastjson接下来通过实现WebMvcConfigurer来配置FastJsonHttpMessageConverter,springboot2.0版本以后

Springboot整合liquibase-爱代码爱编程

1、依赖 这里数据源使用的是postgresql <!-- liquibase--> <dependency> <groupId>org.liquibase</groupId> <artifactId>liquibase-core</artifactId> &l

SpringBoot 整合 liquibase-爱代码爱编程

LiquiBase是一个用于数据库重构和迁移的开源工具,通过日志文件的形式记录数据库的变更,然后执行日志文件中的修改,将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案,通过执行schema类型的文件来达到迁移。其有点主要有以下: 支持几乎所有主流的数据库,如MySQL, PostgreSQL, Oracle, Sql Serve

使用liquibase进行数据库迁移(Postgresql/Mysql)——springboot整合Liquibase以及使用maven命令执行Liquibase同步更新数据-爱代码爱编程

文章目录 一。什么是Liquibase?1.liquibase的优点2.liquibase的基本概念3.官网地址二。SpringBoot整合Liquibase1.简介2.项目结构3.测试结果4.特别注意5.扩展6.项目地址三。使用Maven命令来执行Liquibase同步更新数据1.简介2.项目结构3.测试结果4.项目地址: 一。什么是Liqu

liquibase表升级脚本生成(springboot)_十方天士的博客-爱代码爱编程

本例是运用的若依的框架,其中有根据表名生成实体的功能。有的公司会用liquibase去管理数据库的表,先将初始化自动生成方式记录(本文基础数据库是oracle,生成的脚本适用于oracle,mysql,达梦) 一、Controller层 /** * 生成代码 */ @RequiresPermissions(

springboot 整合 liquibase 详细步骤_springliquibase-爱代码爱编程

文章目录 一、介绍二、使用步骤2.1、引入maven依赖2.2、创建SpringBoot配置文件来指定一些配置文件地址2.3、创建配置文件 一、介绍 LiquiBase 官方地址:ht

springboot整合liquibase_springboot liquibase 回滚-爱代码爱编程

SpringBoot整合Liquibase 1、Liquibase简介 ​ LiquiBase官网地址 ​ LiquiBase 是一个数据库重构和迁移的开源框架,通过日志的方式来记录数据库的变更。通过执行日志文件中的修