编写DataSource ,在程序启动的时候判断数据库是否存在,如果存在不做任何操作,如果不存在则创建数据库
import com.alibaba.druid.pool.DruidDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import javax.sql.DataSource; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; /** * Created by xjw */ @Configuration @Primary //在同样的DataSource中,首先使用被标注的DataSource public class DataSourceConfig { private Logger log = LoggerFactory.getLogger(DataSourceConfig.class); @Value("${spring.datasource.url}") //jdbc:mysql://127.0.0.1:3306/insight?useUnicode=true&characterEncoding=utf8&failOverReadOnly=false&allowMultiQueries=true private String datasourceUrl; @Value("${spring.datasource.driver-class-name}") private String driverClassName; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Bean //声明其为Bean实例 public DataSource dataSource(){ DruidDataSource datasource = new DruidDataSource(); datasource.setUrl(datasourceUrl); datasource.setUsername(username); datasource.setPassword(password); datasource.setDriverClassName(driverClassName); try { Class.forName(driverClassName); String url01 = datasourceUrl.substring(0,datasourceUrl.indexOf("?")); String url02 = url01.substring(0,url01.lastIndexOf("/")); String datasourceName = url01.substring(url01.lastIndexOf("/")+1); // 连接已经存在的数据库,如:mysql Connection connection = DriverManager.getConnection(url02, username, password); Statement statement = connection.createStatement(); // 创建数据库 statement.executeUpdate("create database if not exists `" + datasourceName + "` default character set utf8 COLLATE utf8_general_ci"); statement.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } return datasource; } }
在springboot中引入flyway
(flyway官网中文:https://flywaydb.org/documentation/migrations)
- 在pom.xml中引入jar
<dependency> <groupId>org.flywaydb</groupId> <artifactId>flyway-core</artifactId> </dependency>
- 在配置文件中(application.properties )中添加配置
flyway.baselineOnMigrate=true flyway.locations=classpath:db/migration/ # sql文件的位置 spring.datasource.validationQuery=SELECT 1
- 根据flyway.locations 配置的位置新增文件夹及文件
其中 V 代表版本控制,1.0 1.1代表版本号(注:V1.0 后面是 两个 _ 否则不起作用。sql语句中不能含有创建 schema_version表的信息否则报错)
这样就可以使用flyway控制数据库的版本了。
相关推荐
Flyway是一个流行的数据库版本控制工具,它可以与SpringBoot框架集成,以实现自动化的数据库版本控制。在本文中,我们将详细介绍如何将Flyway与SpringBoot集成,实现数据库版本控制。 一、引入依赖 在使用Flyway...
springboot集成flyway实现数据库版本自动升级及冲突问题解决,灵活实现升级语句的自主执行
SpringBoot与Flyway的结合** SpringBoot提供了对Flyway的内置支持,只需简单配置,即可轻松实现数据库迁移功能。以下是一些关键步骤: **2.1 添加依赖** 在SpringBoot的`pom.xml`或`build.gradle`文件中,添加...
本篇将详细介绍Spring Boot集成Flyway进行数据库版本管理的过程及相关的知识点。 首先,让我们了解什么是Flyway。Flyway是基于Java的数据库版本管理工具,它允许你以SQL脚本的形式来管理数据库的结构变化。每次...
在SpringBoot应用中集成Flyway,可以自动化数据库版本升级,简化数据库维护流程。 首先,让我们深入了解Flyway的工作原理。Flyway通过创建一个版本化的SQL脚本目录来管理数据库变更。每个脚本代表一个数据库版本,...
"SpringBoot项目集成Flyway进行数据库版本控制的详细教程" SpringBoot项目集成Flyway进行数据库版本控制是当前软件开发中非常重要的一部分。本文详细介绍了如何在SpringBoot项目中集成Flyway进行数据库版本控制,...
"Flyway详解及Springboot集成Flyway的详细教程" Flyway是一款数据库版本控制管理工具,支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里。Flyway提供了多种方式来集成到项目中,如Command...
在"springboot-flyway-strategy-master"项目中,我们将深入探讨如何在Spring Boot应用中集成Flyway来实现高效且有序的数据库操作。 首先,Spring Boot提供了对Flyway的内置支持,允许开发者通过简单的配置就能启用...
SpringBoot项目可以自动执行Flyway的SQL文件,并记录数据库版本控制表中。 Flyway的配置参数包括url、user、password、table、enabled、locations等。url参数指定了连接数据库的Url,user参数指定了连接数据库的...
Java开发案例-springboot-27-整合Flyway实现数据库版本控制-源代码+文档.rar Java开发案例-springboot-27-整合Flyway实现数据库版本控制-源代码+文档.rar Java开发案例-springboot-27-整合Flyway实现数据库版本控制-...
SpringBoot项目中配置Flyway Flyway是一款开源的数据库版本管理工具,它可以独立于应用实现并管理数据库变更,支持数据库版本自动升级。在Spring Boot框架中,默认封装了Flyway,只需要简单的配置就可以使用,其...
创建项目以学习SpringBoot和Flyway之间的集成 建筑 ... 故障排除 ... 发行说明 可以在找到。 作者 罗曼·别斯克罗夫尼(Roman Beskrovnyi) 致谢 ... 贡献 请按照页面。 行为守则 请遵循页面。 执照 该项目是Apache...
该项目演示了数据库迁移工具Flyway和SpringBoot框架之间的集成。 分步指南 文章中描述的全部内容:[ ] 演示的一些重要部分 移居 Project有两个迁移,其中包含: src/main/resources/db.migration所有迁移都具有项目...
在数据库应用开发中,随着项目的迭代,数据库结构的变化是不可避免的,Flyway提供了一种规范化的、自动化的方式来跟踪、管理和应用这些变化,使得数据库的演变过程变得有序且可回溯。 在"flyway-4.0.3"这个版本中,...
基于flyway的6.5.7版本修改flway-core ,支持国产数据库,暂时处于自测阶段,使用连接kingbase进行管理正常。
flyway支持达梦数据库版本jar包,拿来即用
kingbase 数据库 flyway 插件,导入此jar在依赖 flyway-8.5.13.jar 版本即可,人大金仓 数据库 国产数据库
在实际项目中,Flyway 可以集成到构建工具(如Maven或Gradle)和持续集成/持续部署(CI/CD)流程中,确保每次部署时数据库都能自动更新到正确版本。此外,Flyway 支持多种数据库系统,包括MySQL、Oracle、PostgreSQL等...
通过应用一系列有序的迁移,Flyway可以帮助开发者跟踪和管理数据库的结构变更,如创建表、添加字段或修改索引等。 ### Flyway工作流程 1. **初始化**:首次运行时,Flyway会在数据库中创建一个名为`schema_version...
通过这个项目,你可以学习如何配置Flyway,创建数据库迁移脚本,并观察它们如何随着应用程序的部署自动执行。 【标签】"Java"表明这个项目是基于Java语言的,特别是使用了SpringBoot框架,这是目前非常流行的企业级...