开源数据目录管理工具_Java开发中用到的数据库迁移工具(flyway)

2023-11-06

什么是数据库版本管理?

任何web软件和应用程序都需要强大的数据库管理工具,因此开发者选择一款合适的数据库管理工具尤为重要。本文列出了几款好用的数据库管理工具(有些并非开源或免费),以供开发者们参考选择,做过开发的小伙伴们都知道,实现一个需求时,一般情况下都需要设计到数据库表结构的修改。那么我们怎么能保证项目多人开发时,多个数据库环境(测试,生产环境)能够保持一致呢?在没有数据库版本管理工具之前,需要将数据库修改脚本拷贝到每个数据库环境进行执行。而有了数据库版本管理工具之后,程序在启动的时候就会根据实现定义好的规则来进行数据库脚本的执行。

使用flyway

使用环境

#我自己用的是springboot项目,mysql数据库

导入flayway和mysql依赖

org.flywaydb    flyway-coremysql    mysql-connector-javaorg.springframework.boot    spring-boot-starter-jdbc

创建数据库脚本目录

在resources资源目录下创建db/migration目录。

添加数据库脚本

#脚本命名规则 V__.sql,P__.sql。V代表只执行一次,P代表可以执行多次#VERSION代表数据库脚本版本,NAME代表数据名称。#这里使用V1_test.sql,脚本内容如下所示。DROP TABLE IF EXISTS `role`;CREATE TABLE `role`  (  `id` int(11) NOT NULL,  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,  PRIMARY KEY (`id`) USING BTREE) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;INSERT INTO `role` VALUES (1, '1');

properties文件配置

#指定数据库脚本为UTF-8, flyway的配置有很多,有兴趣的小伙伴可以去看下spring.flyway.encoding=utf-8#如果原来的数据库不为空,则需要设置spring.flyway.baseline-on-migrate=true#设置数据库起始版本为0,默认为1。如果你写的sql脚本version小于等于起始版本则不会执行。spring.flyway.baseline-version=0#数据源配置spring.datasource.url=jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf8&useSSL=falsespring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.datasource.username=rootspring.datasource.password=123456

启动应用程序,查看控制台输出

数据库查看

此时flyway会默认添加一张记录数据库版本信息的表,每次启动时会根据version值判断是否需要执行sql。

flyway是怎么执行的?

#spring-boot-dependencies 导入了flyway,mysql依赖。#spring-boot-autoconfigure 中导入了FlywayAutoConfiguration自动配置类
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开源数据目录管理工具_Java开发中用到的数据库迁移工具(flyway) 的相关文章

  • 使用arcgis修改行政区划图边界

    打开ArcMap 我的是10 8版本的 1 添加行政区划图数据 文件 添加数据 添加数据 弹出添加数据框 点击红色框中的按钮 连接到数据所在文件夹 选择要处理的数据 添加 不便放入整体规划图 放大后选取部分作为示例 本次处理目的是把红色框中
  • 3d散列点云的曲率的求法

    1 取某个区域内的n个最近邻点根据局部抛物面拟合公式 z x y Ax 2 By 2 Cxy Dx Ey F 用最小二乘法可求出上面的各个系数 即可求得空间曲面函数的系数 2 根据公式 Km A 1 E 2 B 1 D 2 CDE 1 D
  • 合宙Air105

    基础资料 基于Air105开发板 Air105 LuatOS 文档 上手 开发上手 LuatOS 文档 探讨重点 对官方Socket网络接口demo中DTU连接示例 dtu demo lua 进行复现及分析 进行用阻塞方式做串口透传DTU内
  • 数据资源丨原始数据哪里找?这些网站要用好!(建议收藏)

    资料搜集是个相当繁琐与累的工作 也是投资入门的基本 良好的信息资料搜集能力有利于我们快速了解投资主体的基本情况 为后续的调研及一手资料的获得打下较好的基础 目录 一 搜索引擎 重点掌握 1 搜索关键字的选择 2 搜索技巧 3 搜索引擎推荐
  • pptp流量分析之搭建pptp测试服务器

    1 前言 最近研究常见vpn流量协议 需要产出检测规则对此类流量进行检测 遂需要搭建测试环境抓取测试流量 简单记录一下 2 环境准备 1 ubuntu22 04 服务器 2 win11 客户机 3 安装及配置 3 1 ubuntu服务器安装
  • 高通平台USB 2.0和USB 3.0接口充电器识别原理

    1 BC 1 2 1 1 充电器类型探测 1 DCD DP上有150mV 10uA x 15K欧姆下拉电阻 的电压 DM上电压为0 2 Primary Det DP发起检测DM DP上加载0 6V电压 DM上电压为0 充电器类型是SDP D
  • Pikachu漏洞靶场的简介、下载与安装

    文章目录 简介 下载 安装 简介 pikachu是一个漏洞练习平台 其中包含了常见的web安全漏洞 Burt Force 暴力 漏洞 XSS 跨站脚本漏洞 CSRF 跨站请求伪造 SQL Inject SQL注入漏洞 RCE 远程命令 代码
  • [WSL-1-Ubuntu]使用oh-my-zsh美化你的WSL(附脚本)

    在腾讯云买的那个1c2g的服务器 想用mycat搭建一个mysql cluser 用docker部署了一主一从内存就没了一半 可一主一从没啥作用 起码也得2主2从吧 而且还有HA呢 但内存和钱包不给力 所以就想到WSL这个方案 在开wsl这
  • 发现1个拿来即用的Python高级脚本,收藏!

    今天 给大家推荐一些用Python爬虫做私活的渠道 先给各位还不熟悉Python爬虫的朋友介绍一下 可以短时间获得大量资料 可以进一步数据分析 当然也可以获得收益 学会Python爬虫以后 还可以通过各种渠道 网站接单 接单群 私人介绍 接
  • 今日头条信息流广告怎么做?(今日头条信息流广告费用解析)

    国内的各种渠道千千万 主流的广告平台不算多也不算少 而今日头条与其它平台最大区别在于 个性化推荐和智能分发 可以简单理解为 今日头条上投放的广告 是通过 机器人代码 过滤再分发出去的 因此了解 机器人 在分发过程中遵循的规则 随着网络的发展
  • pytorch: RuntimeError: DataLoader worker (pid(s) 27292) exited unexpectedly

    厉害了 用win10特有的bug 搞半天 就是把pytorch下dataloader的其中一个num workers参数注释掉 可能是win10只有一个thread的原因 torch utils data DataLoader self d
  • 同一套服务如何应对不同终端的需求——服务适配

    经过前几个章节的实践 会员已可以绑定手机号 更新个人信息 绑定个人车辆信息 开通月卡 签到等功能 下面从客户端查看自己的数据入手 再聊聊服务调用的问题 简单处理 我们已经将用户数据进行垂直拆分 分布在不同数据库中 当客户端数据展现时 就需要
  • 参加2012中国数据库技术大会大会有感

    上周末参加了 DTCC Database Technology Conference China 2012中国数据库技术大会 见到了很多熟人 开了3天 好多议题 我去了后两天 第一天是周五 没好意思向公司请假 干货还是很多的 比某些扯淡的行
  • 代理服务器(Proxy)

    目录 1 什么是代理服务器 2 代理服务器的作用 3 代理服务器的工作流程 4 安装代理服务器软件及配置文件解析 squid 5 正向代理 6 修改数据存放位置 7 设置磁盘使用阈值 代理 两字顾名思义就是以代理人的身份去帮助其他人取得所需
  • C++数组:发工资

    题目描述 财务处要给公司的n位员工发工资了 请你帮助计算最少要多少张人民币才能给每位员工发工资而不必找零呢 已知人民币的面额为100元 50元 10元 5元 2元和1元这6种 输入格式 第一个值为正整数n 后面接着n个正整数表示n位员工的工
  • Python天文数据处理——Astropy

    前言 Astropy是一个用于天文数据处理的Python包 它包含了许多常用的天文学函数和工具 可以用于处理 分析和可视化各种类型的天文数据 Astropy最新版本是v4 3 官网地址为https www astropy org Astro
  • Django计算机毕业设计个性化大学生图书推荐系统(程序+LW)Python

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 项目运行 环境配置 Pychram社区版 python3 7 7 Mysql5 7 HBuilderX list pip Navicat11 Django nodejs 项目技
  • Linux进行AES加密每次结果都不一致并且解密失败报错

    1 现象 windows操作系统下进行 123456 的AES加密 encrypted message is below QLNYZyjRnKF zxAjzDt lw decrypted message is below 123456 阿里
  • [数值分析拟合]Matlab三次样条插值拟合数据

    三次样条插值是一种运用极为广泛的工程插值算法 本文章编写的函数默认使用端点处的导数值代替给定的两端点的导数值使用三转角构造法进行插值 该函数也可传入端点导数数值进行分析 对数据进行方便而迅速的拟合 但是目前没有三弯矩构造法 一 三次样条插值

随机推荐

  • Qt信号槽——传递自定义数据类型

    Qt信号槽 传递自定义数据类型 Qt的信号槽机制支持传递int short double等C语言的基本类型的变量 也可以传递Qt自己的数据类型 但是在传递用户自己定义的数据类型 或其他数据类型是需要进行注册的 原因 当一个signal被放到
  • 解决python打包的exe程序运行报错闪退不留痕迹问题

    打了exe 运行的时候往往会因为找不到文件而报错闪退 此时根本不知道程序问题出在哪里 也因为程序执行太快而抓不到屏 最简单的方法如下 1 打开已打包好的exe文件目录 2 资源管理器输入cmd 运行命令行程序 3 命令行窗口内运行exe程序
  • JDBC与Mybitabs实习笔记

    JDBC与mybatis学习 JDBC的使用 1 导入依赖jar包 2 加载驱动类 3 创建连接对象 4 创建传输对象 SQL的执行器 将SQL语句传输给SQL服务器 5 执行SQL语句 6 关闭资源 1 导入依赖jar包 去mvnreoi
  • oracle存储过程----mybatis传入参数调用存储过程查询

    上一篇的链接是 oracle存储过程 异常的写法介绍 有这样的需求 比如共有表B1 B17 17张表 现在要求传入年度 行政区划 查询出所有符合条件的B1 B17的所有记录 当然 仅查询这些表中共同有的字段 因为这算是跨表查询了 一般我们写
  • vue基础入门

    1 vue简介 1 1 什么是vue 官方概念 Vue 读音 vju 类似于view 是一套用于构建用户界面的前端框架 1 2 vue 的特性 vue 框架的特性 主要体现在如下两方面 数据驱动视图 双向数据绑定 数据驱动视图 在使用了 v
  • 用 卡莱特A35播放盒子 在局域网内更新单行文本

    将播放盒和led正常连接之后 1 到官方网下载配套软件PlayerMaster 下载开发文档 2 使用配套软件 PlayerMaster 找到并查看目标设备的ip 3 在开发文档中找到 ColorlightRESTfulAPI V1 9 中
  • hive分桶表详解

    为什么要用分桶表 单个分区或者表中的数据量越来越大 当分区不能更细粒的划分数据时 所以会采用分桶技术将数据更细粒度的划分和管理 分区提供了一个隔离数据和优化查询的便利的方式 但是当分区的数量过多时 会产生过多的小分区 这样会给namenod
  • RedisTemplate集合使用说明-opsForList(二)

    1 leftPush K key V value 在变量左边添加元素值 Java代码 redisTemplate opsForList leftPush list a redisTemplate opsForList leftPush li
  • centos安装openssl

    安装环境 操作系统 CentOs6 3 OpenSSL Version openssl 1 0 0e tar gz 目前版本最新的SSL地址为http www openssl org source openssl 1 0 0e tar gz
  • IDEA Artifacts:Error during artifact deployment的问题:

    在本地启动tomact服务器的时候 总会出现这样的问题 我的这个项目的多工程 一个工程下面有好多依赖工程 首先确保项目是有这个蓝色图标 如果没有 如果没有在project strucure Modules 点击 导入module 然后下一步
  • 一句话木马、security_file_priv、into outfile、my.ini、sqli-labs-Less7

    sqli labs Less7闯关会用到一句话木马 http 127 0 0 1 Less 7 id 1 union select 1 2 into outfile C hackfiles sqli labs master Less 7 m
  • typec转usb不识别u盘_U盘插入电脑没反应?只需一招,教你轻松解决USB无法识别的问题!...

    说到U盘大家会想到什么呢 其实U盘作为我们日常生活中最为常用的USB设备 用处十分的多 除了日常的资料的存储 转移之外 它还可以作为系统重装的重要工具 是不是没想到它那么厉害呢 不过呢 意外的事情 说来就来 也没法挡住 U盘作为经常使用的工
  • java中json字符串移除指定属性

    java中json字符串移除指定属性 选择正确的jar包 刚开始下载了json lib 2 2 jdk15 jar包 但是程序报找不JSONObject JSONArray类 在网上找json移除属性时找不到对应的方法 网上头说使用json
  • 2020蓝桥杯模拟——长草

    1 题目描述 小明有一块空地 他将这块空地划分为 n 行 m 列的小块 每行和每列的长度都为 1 小明选了其中的一些小块空地 种上了草 其他小块仍然保持是空地 这些草长得很快 每个月 草都会向外长出一些 如果一个小块种了草 则它将向自己的上
  • win10远程连接win7连接不上去的处理办法 发布时间:2020-04-15

    win10远程连接win7连接不上去的处理办法 发布时间 2020 04 15 12 39发布者 系统城 lufang浏览数 1227 很多用户在使用win10远程桌面的时候 想要去连接win7系统的电脑 却发现自己电脑出现了连接不上的问题
  • Android Studio中的SDK Manager使用

    前言 网上的开源项目中使用的Build Tools的版本可能和自己本地的版本不一致 如果本地没有对应的版本 可能会出现编译报错的问题 关于项目的BuildTools的版本设置在build gradle中 便已报错如下图 解决BuildToo
  • php接入企业微信

    企业微信 现在来讲应该是一个很常见了的功能了 下面 我就以tp6来给大讲下接入企业微信的小demo吧 首先 在common php的公共方法里面写入下面两段代码 function sendRequest url 用curl请求获取acces
  • java图片验证码在服务器上返回乱码问题

    本机上没有问题 部署在阿里云服务器上都几个月了都没有问题 上传过一次代码后突然验证码就显示为看不懂的符号了 然而代码对此并没有影响的 打印生成的验证码 String word vcu produceNumAndChar length LOG
  • ES集群节点宕机导致shard unassigned解决方案

    ES集群概况 1台master节点 4台data节点 9个shards 问题 一台data节点宕机 导致5个分片处于unassigned状态 集群状态变为red 无法自动rerouting 解决步骤 1 查看所有节点的日志信息 通过日志 我
  • 开源数据目录管理工具_Java开发中用到的数据库迁移工具(flyway)

    什么是数据库版本管理 任何web软件和应用程序都需要强大的数据库管理工具 因此开发者选择一款合适的数据库管理工具尤为重要 本文列出了几款好用的数据库管理工具 有些并非开源或免费 以供开发者们参考选择 做过开发的小伙伴们都知道 实现一个需求时