当前位置: 首页 > news >正文

江苏seo哪家好南阳网站seo

江苏seo哪家好,南阳网站seo,目前做win7系统最好的网站,石家庄建设厅网站本文大纲flyway是什么能帮助我们解决什么问题springboot环境下使用flywayflyway的工作原理一、flyway是什么Flyway是一个开源的数据库版本管理工具,并且极力主张“约定大于配置”,简单、专注、强大。可以使用SQL完成数据同步,或者基于特定数据…

   referrerpolicy=

本文大纲

flyway是什么

能帮助我们解决什么问题

springboot环境下使用flyway

flyway的工作原理

一、flyway是什么

Flyway是一个开源的数据库版本管理工具,并且极力主张“约定大于配置”,简单、专注、强大。可以使用SQL完成数据同步,或者基于特定数据库的语法(例如PL / SQL,T-SQL等)或Java代码(适用于高级数据转换或处理LOB)的方式编写。并且数据库支持非常广泛:

   referrerpolicy=

二、能帮助我们解决什么问题

那么,我们首先解释一下什么是数据库版本管理?

大家都知道git是帮助软件项目进行代码版本的管理,方便程序员协同开发

那么FlyWay就是数据库版本管理的工具,目标是保证多环境下数据库的状态一致性,方便程序员协同开发

举个简单的例子:

开发人员通常使用同一个数据库或者自建库进行开发工作,这个数据库通常叫做开发库。

测试人员为了保障测试数据的有效性,通常自建一个库进行测试,这个数据库叫做测试库。

销售人员为了保证演示数据的效果,通常也需要一个单独的数据库,这个数据库叫做演示库。

正式生产上线的库,供给用户使用,这个数据库叫做生产库。

那么问题就来了:我们如何保证数据库schema的状态一致?某一个开发人员修改了开发库,新增了一个字段,如何能够有效的同步到测试库,测试通过之后如何有效的同步到演示库和生产库?在没有Flyway之前,这个动作通常是由上线程序员自己去执行SQL来完成的,或者比较正规的公司专门有版本管理人员去操作。这种方式通常存在几个问题:

开发团队内部的沟通成本增加,比如某一个成员修改了一个数据库字段,其他人可能都不知道。

开发团队和测试团队和其他团队之间的沟通成本增加

无法完成自动化的持续集成,持续集成的过程代码可以通过git、maven、docker、k8s等工具来实现自动化的代码打包、部署。但是数据库的状态变化没有得到有效的自动变更,持续集成的过程的自动化就无法实现。

这也就是我们学习Flyway的目的:Flyway能够自动的帮助我们有效的同步各个发布数据库之间的状态,不管你是加了或者删了一个字段,还是新加了一张表,他都能自动化的跟随项目的发布同时发布。

三、 springboot环境下使用flyway

首先,我们为SpringBoot项目添加Flyway依赖

org.flywaydb

flyway-core

6.0.7

然后我们要保证数据库里面有spring.datasource的数据源配置。并且在application.properties中添加如下的配置

spring:

flyway:

enabled: true #启用flyway

encoding: utf-8 #字符编码

locations: ["classpath:db/migration"] #版本控制文件存放目录

然后在resources/db/migration目录下面,加入如下格式的脚本:

V1.1__create_table.sql

V1.2__update_person_table.sql

V1.3__create_new_table.sql

V1.4__add_person_comment.sql

V2.1__modify_person_data.sql

大写V后面紧跟数据库脚本的版本号(递增形式、不能重复),然后两个下划线,之后是对脚本内容进行描述。如:V1.1__create_table.sql是用于创建表结构的数据库脚本,内容是create table之类的DDL。 第二个脚本是对数据库中person表进行了更新。总之脚本里面的内容,就是你希望对spring.datasource代表的数据库进行的操作,可以是表的创建、删除、修改,也可以是对数据的创建删除修改。

当然,我个人不建议将DML-SQL写入脚本,也就是不要在这个脚本里面写insert、update、delete。以免不注意的情况下,造成生产数据的误操作。如果你们公司在生产上线管理方面没有严格的审核程序,在生产环境下,就干脆不要使用flyway,方便开发是一方面,生产安全更为重要!

最后,启动SpringBoot项目,在该目标库范围内没有执行过的SQL脚本被执行。并将脚本执行信息保存在数据库的schema_version_history数据表里面。

四、FlyWay的工作原理

   referrerpolicy=

首先项目启动flyway会去db/migration下面扫描文件,获取文件名,并解析版本号

然后去schema_version_history表里面找对应的版本执行信息,如果你的文件版本号大于数据库记录版本,就执行脚本。否则就忽略。

期待您的关注

本文转载注明出处(必须带连接,不能只转文字):字母哥博客。

http://www.lbrq.cn/news/2540737.html

相关文章:

  • 做境外盈利网站违法吗天津seo顾问
  • 网络规划设计师证书样本长春网站优化咨询
  • 婚庆网站建设必要性软文营销的步骤
  • 个人网站备案做淘宝客青岛百度网站排名优化
  • 体育器材网站模板关键词排名优化顾问
  • 做网站没有按照合同履行怎样查询百度收录和排名情况
  • 35互联做网站多少钱视频号下载器手机版
  • 做文字云的网站百度关键字排名软件
  • 五百亿建站模板免费的网站推广
  • 广告设计公司怎么找业务seo推广优化平台
  • 打车小程序源码优化关键词排名哪家好
  • 小超人成都网站建设打开百度网址
  • 什么网站可以找人做软件建网站一般需要多少钱
  • wordpress建站显示网站图标重庆百度seo代理
  • 网易企业邮箱设置pop3seo技术优化技巧
  • 百度竞价推广运营国内专业的seo机构
  • java刷题网站开发软文网站名称
  • java开发框架有哪些优化服务
  • 四川省级建设主管部门网站2021年网络热点舆论
  • 织梦网站栏目管理专业网站优化公司
  • wordpress企业主题制作视频教程seo研究中心vip课程
  • 做网站项目时 需求分析的内容百度邮箱注册入口
  • 中国专门做生鲜的网站百度网盘提取码入口
  • 自己建网站怎么做影视资源seo优化资源
  • 南通网站推广公司南宁seo网络优化公司
  • wordpress didiao好口碑关键词优化
  • 如何做网站代理合肥建站公司seo
  • 青岛网站制作服务简述网络营销的特点
  • 坪山网站建设方案谷歌搜索引擎入口
  • 拼多多网站建设方案衡阳seo优化
  • 安灯系统(Andon System)
  • sc-atac的基础知识(0)
  • 涉水救援机器人cad【12张】三维图+设计书明说
  • WaitForSingleObject 函数参数影响及信号处理分析
  • SpringAI智能客服Function Calling兼容性问题解决方案
  • Linux文件系统理解2