iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot使用Flyway进行数据库管理的操作方法
  • 254
分享到

SpringBoot使用Flyway进行数据库管理的操作方法

2024-04-02 19:04:59 254人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一、Flyway简介二、SpringBoot集成使用1.pom.xml引入依赖2.application.properties3.resources创建db数据库脚本文件夹4.启

一、Flyway简介

Flyway是一款数据库迁移(migration)工具。简单点说,就是在你部署应用的时候,帮你执行数据库脚本的工具。Flyway支持sql和Java两种类型的脚本,你可以将脚本打包到应用程序中,在应用程序启动时,由Flyway来管理这些脚本的执行,这些脚本被Flyway称之为migration。

就目前而言,我们部署应用的流程大概是这样的:

开发人员将应用程序打包、按顺序汇总并整理数据库升级脚本
DBA拿到数据库升级脚本检查、备份、执行,以完成数据库升级
应部署人员拿到应用部署包,备份、替换,以完成应用程序升级
引入Flyway之后的应用部署流程大概是这样的:

开发人员将应用程序打包
应部署人员拿到应用部署包,备份、替换,以完成应用程序升(Flyway将自动执行升级/备份脚本)。

二、springBoot集成使用

1.pom.xml引入依赖


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="Http://Maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.0.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>demo</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- Mysql 依赖 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>

		<!-- 数据库版本管理 依赖 -->
		<dependency>
			<groupId>org.flywaydb</groupId>
			<artifactId>flyway-core</artifactId>
		</dependency>

		<!-- 数据库访问依赖 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>

		<!-- 自动生成get,set方法 依赖 -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

2.application.properties


# 端口
server.port=8082

# 数据源
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=PRC&useSSL=false
spring.datasource.username=root
spring.datasource.passWord=root

# flyway    注:可以完全不用配置
## sql 脚本的位置,默认为 classpath:db/migration。可手动指定
spring.flyway.locations=classpath:db
##  指定数据源,如果没有指定的话,将使用配置的主数据源
spring.flyway.url=jdbc:mysql://127.0.0.1:3306/test1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&serverTimezone=PRC&useSSL=false
## Flyway 管理的 Schema 列表,区分大小写。默认连接对应的默认 Schema
## 如果这里明确指定了库名,那么在 spring.flyway.url 连接中指定的库名将无效
spring.flyway.schemas=test1
## 用户名
spring.flyway.user=root
## 密码
spring.flyway.password=root
## 开启,默认开启
spring.flyway.enabled=true

3.resources创建db数据库脚本文件夹

V0.1.0__init_table.sql


-- 创建表
create table t_startAlarm
(
    id      int(100) primary key not null auto_increment,
    name     varchar(100),
    type      varchar(100)
)

V0.1.1__init_table.sql


-- 初始化数据
INSERT INTO t_startAlarm ( id , name , type ) VALUES
('1','电饭煲','用来蒸饭')

V0.1.2__init_table.sql


-- 初始化数据
INSERT INTO t_startAlarm ( id , name , type ) VALUES
('2','电饭煲2','用来蒸饭2')

4.启动DemoApplication主启动类

4.1只有V0.1.0__init_table.sql和V0.1.1__init_table.sql。
项目启动,Flyway 会自动创建一个 flyway_schema_history 表,这个表用来记录数据库的更新历史。

有了这条记录,下次再启动项目,V0.1.1__init_table.sql 这个脚本文件就不会执行了,因为系统知道这个脚本已经执行过了,如果你还想让 V0.1.1__init_table.sql 脚本再执行一遍,需要手动删除 flyway_schema_history 表中的对应记录,那么项目启动时,这个脚本就会被执行了。

注意:

我们在定义脚本的时候,除了 V 字开头的脚本之外,还有一种 R 字开头的脚本,V 字开头的脚本只会执行一次,而 R字开头的脚本,只要脚本内容发生了变化,启动时候就会执行。

使用了 Flyway之后,如果再想进行数据库版本升级,就不用该以前的数据库脚本了,直接创建新的数据库脚本,项目在启动时检测了有新的更高版本的脚本,就会自动执行,这样,在和其他同事配合工作时,也会方便很多。因为正常我们都是从git 上拉代码下来,不拉数据库脚本,这样要是有人更新了数据库,其他同事不一定能够收到最新的通知,使用了 Flyway就可以有效避免这个问题了。

所有的脚本,一旦执行了,就会在 flyway_schema_history表中有记录,如果你不小心搞错了,可以手动从 flyway_schema_history 表中删除记录,然后修改 SQL脚本后再重新启动(生产环境不建议)。

测试数据库中结果:

在这里插入图片描述
请添加图片描述

添加V0.1.2__init_table.sql,测试数据库中结果

请添加图片描述

请添加图片描述

三、项目整体结构

代码地址链接: SpringbootFlyway

在这里插入图片描述

参考文章

https://www.cnblogs.com/wangzh1guo/articles/13834706.html

到此这篇关于SpringBoot使用Flyway进行数据库管理的文章就介绍到这了,更多相关SpringBoot Flyway数据库管理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot使用Flyway进行数据库管理的操作方法

本文链接: https://www.lsjlt.com/news/136045.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot使用Flyway进行数据库管理的操作方法
    目录一、Flyway简介二、SpringBoot集成使用1.pom.xml引入依赖2.application.properties3.resources创建db数据库脚本文件夹4.启...
    99+
    2022-11-12
  • python3使用libpcap库进行抓包及数据处理的操作方法
    目录一、安装libpcap库1、在线安装2、离线安装2.1 下载离线安装文件2.2 执行离线安装操作二、使用libpcap库1、导入及指定pcap库2、常用API介绍2.1 获取网络...
    99+
    2022-11-11
  • SpringBoot连接MYSQL数据库并使用JPA进行操作
    今天给大家介绍一下如何SpringBoot中连接Mysql数据库,并使用JPA进行数据库的相关操作。步骤一:在pom.xml文件中添加MYSQl和JPA的相关Jar包依赖,具体添加位置在dependencies中,具体添加的内容如下所示。&...
    99+
    2023-05-31
    jpa mysql spring
  • java中如何使用Flyway管理数据库的版本变更
    这篇文章给大家分享的是有关java中如何使用Flyway管理数据库的版本变更的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 前言随着项目的不断迭代,数据库表结构、数据都在发生着变化。甚至有的业务在多环境版本并...
    99+
    2023-06-16
  • navicat中对数据库进行操作的方法有哪些
    这篇文章主要介绍navicat中对数据库进行操作的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一,navicat如何写sql语句查询?方法1:ctrl+q就会弹出一个sq...
    99+
    2022-10-18
  • SpringBoot使用JdbcTemplate访问操作数据库基本用法
    目录一、建一个rumenz_springboot库二、加入pom的依赖三、SpringBoot配置文件四、创建User实体类五、Service接口六、Service接口实现类七、Co...
    99+
    2022-11-13
  • android中使用SharedPreferences进行数据存储的操作方法
    很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用...
    99+
    2022-06-06
    方法 数据 存储 数据存储 Android
  • Python操作使用MySQL数据库方法
    下面一起来了解下Python操作使用MySQL数据库方法,相信大家看完肯定会受益匪浅,文字在精不在多,希望Python操作使用MySQL数据库方法这篇短内容是你想要的。一,安装mysql 如果是w...
    99+
    2022-10-18
  • 使用navicat连接数据库的操作方法
    小编给大家分享一下使用navicat连接数据库的操作方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  无论是本机安装的MyS...
    99+
    2022-10-18
  • 使用phonegap怎么对数据库进行操作
    使用phonegap怎么对数据库进行操作?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。实例如下:<!DOCTYPE html> ...
    99+
    2023-06-09
  • thinkphp如何使用ORM进行数据库操作
    本篇内容介绍了“thinkphp如何使用ORM进行数据库操作”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ThinkPHP 是一款基于 PH...
    99+
    2023-07-06
  • 使用springboot对linux进行操控的方法示例
    1,在pom中导入 <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganyme...
    99+
    2022-06-03
    springboot linux操控 springboot linux
  • Node.js中使用mongoose操作mongodb数据库的方法
    如何利用mongoose将数据写入mongodb数据库? 1.利用npm下载安装mongoose; npm install mongoose 2.建立js文件,引入mongoose var mon...
    99+
    2022-06-04
    操作 数据库 方法
  • IDEA版使用Java操作Redis数据库的方法
    首先 下载 jedis.jar包 然后再 工程设置里面找到Libraries,点击+。添加下载好的jedis.jar包。点击OK退出即可 创建Java_Control_Redis类...
    99+
    2022-11-12
  • 使用Node怎么对MongoDB数据库进行操作
    这篇文章给大家介绍使用Node怎么对MongoDB数据库进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.使用 MongoDB模块 进行操作 首先在工作目录安装 mo...
    99+
    2022-10-18
  • 使用gorm怎么对MySql数据库进行操作
    本篇文章给大家分享的是有关使用gorm怎么对MySql数据库进行操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、表中字段区分大小写的设置在使用gorm查询的时候,会出现账...
    99+
    2023-06-07
  • SpringBoot整合EasyExcel进行大数据处理的方法详解
    目录EasyExcel需要的Maven基础读案例操作的excel实体类读取监听器测试基础写案例实体类测试Excel模板方式准备模块实体类测试EasyExcel EasyExcel文档...
    99+
    2022-11-13
  • SpringBoot项目中同时操作多个数据库的实现方法
    目录一、导入相关pom文件二、application.yml配置文件编写三、数据库连接配置文件四、主启动类注解修改五、测试在实际项目开发中可能存在需要同时操作两个数据库的场景,比如从...
    99+
    2022-11-13
  • 【MySQL】使用DBeaver数据库管理工具进行MySQL数据库连接
    一、数据库连接信息填写 服务器地址:填写服务器部署的地址,以及端口号 2、数据库:sys 3、用户名:root 4、密码:服务器上面设置的具体密码 以上信息填写错误的报错提示:Access denie...
    99+
    2023-09-01
    数据库 mysql 服务器 db
  • 使用阿里云主机进行数据库管理
    本文将详细介绍如何使用阿里云主机进行数据库管理,包括安装和配置数据库、备份数据库、恢复数据库等步骤。 阿里云主机是一种高效、稳定、灵活的云计算资源,可以用来运行各种应用程序,包括数据库。本文将详细介绍如何使用阿里云主机进行数据库管理,包括安...
    99+
    2023-12-14
    阿里 数据库管理 主机
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作