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

云南住房建设厅网站高端猎头公司排名

云南住房建设厅网站,高端猎头公司排名,wordpress卡蜜主题,淘宝运营工作内容前言 目前很多公司都是通过人工去维护、同步数据库脚本#xff0c;但经常会遇到疏忽而遗漏的情况#xff0c;同时也是非常费力耗时 比如说我们在开发环境对某个表新增了一个字段#xff0c;而提交测试时却忘了提交该 SQL 脚本#xff0c;导致出现 bug 而测试中断#xf…前言 目前很多公司都是通过人工去维护、同步数据库脚本但经常会遇到疏忽而遗漏的情况同时也是非常费力耗时 比如说我们在开发环境对某个表新增了一个字段而提交测试时却忘了提交该 SQL 脚本导致出现 bug 而测试中断从而影响开发、测试的工作效率 我们可以使用 Git/ SVN 等工具进行代码的版本控制同时数据库也有对应的版本控制工具可以记录数据库的变化记录 Flyway 是一款开源的数据库版本管理工具它更倾向于规约优于配置的方式。Flyway 可以独立于应用实现管理并跟踪数据库变更支持数据库版本自动升级并且有一套默认的规约不需要复杂的配置Migrations 可以写成 SQL 脚本也可以写在 Java 代码中不仅支持 Command Line 和 Java API还支持 Build 构建工具和 Spring Boot 等同时在分布式环境下能够安全可靠地升级数据库同时也支持失败恢复等 官网首页Homepage - Flyway (flywaydb.org) 特性 普通 SQL纯 SQL 脚本(包括占位符替换)没有专有的 XML 格式没有锁定 无限制使用 Java 代码来进行一些高级数据操作 零依赖只需运行在 Java6(及以上)和数据库所需的 JDBC 驱动 约定优于配置迁移时自动查找系统文件和类路径中的 SQL 文件或 Java 类 高可靠性在集群环境下进行数据库升级是安全可靠的 云支持完全支持 Microsoft SQL Azure, Google Cloud SQL App Engine、Heroku Postgres 和 Amazon RDS 自动迁移使用 Flyway 提供的 API让应用启动和迁移同时工作 快速失败损坏的数据库或失败的迁移可以防止应用程序启动 数据库清理在一个数据库中删除所有的表、视图、触发器而不是删除数据库本身 原理 当 Flyway 连接数据库中的 schema 后会先检查是否已存在  flyway_schema_history  表如果没有则创建。该表用于跟踪数据库的状态如数据迁移的版本迁移成功状态等信息 当  flyway_schema_history  存在后Flyway 会扫描文件系统或应用中的 classpath 目录的数据迁移文件然后根据它们的版本号进行按序迁移如下图 由于 flyway_schema_history 表中记录了迁移的版本号如果文件的版本号小于或等于标记为当前版本的版本号则忽略它们不执行 实战 数据库MySQL 8.0 官方文档Quickstart - API - Flyway - Product Documentation (red-gate.com) Maven 首先新建 Maven 项目 添加依赖 !-- flyway --dependencygroupIdorg.flywaydb/groupIdartifactIdflyway-core/artifactIdversion5.2.4/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.15/version/dependency创建迁移 首先我们需要创建迁移文件 src/main/resources/db/migration 然后配置数据库迁移文件实施第一次迁移 src/main/resources/db/migration/V1__Create_person_table.sql 注意V1 后面是两个下划线必须是这样的格式 create table PERSON (ID int not null,NAME varchar(100) not null );然后配置主启动函数 public class App {public static void main(String[] args) {String url jdbc:mysql://127.0.0.1:3306/flyway?useUnicodetruecharacterEncodingUTF-8allowMultiQueriestruerewriteBatchedStatementstrueuseSSLfalseserverTimezoneGMT%2B8;String user root;String password 111111;Flyway flyway Flyway.configure().dataSource(url, user, password).load();// 创建 flyway_schema_history 表 // flyway.baseline();// 删除 flyway_schema_history 表中失败的记录 // flyway.repair();// 检查 sql 文件 // flyway.validate();// 执行数据迁移flyway.migrate();// 删除当前 schema 下所有表 // flyway.clean();}} 执行程序 执行 App 程序 注我们需要提前创建空数据库 flyway如果 flyway 不是项目初期引入后面会给出解决方案 然后我们可以看到现在已经创建了 flyway_schema_history 表和 PERSON 表数据已经成功迁移到指定数据库中 现在如果系统升级需要做数据迁移时我们只需在 db/migration 目录下再放置新版本的 sql 文件即可 现在我们配置第二次迁移创建文件 src/main/resources/db/migration/V2__Add_people.sql insert into PERSON (ID, NAME) values (1, Axel); insert into PERSON (ID, NAME) values (2, Mr. Foo); insert into PERSON (ID, NAME) values (3, Ms. Bar);然后执行 App 就可以看到如下执行成功 SpringBoot 下面整合 flyway 到 springboot 添加依赖 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactId/dependencydependencygroupIdorg.flywaydb/groupIdartifactIdflyway-core/artifactId/dependency配置 application.yml spring:datasource:url: jdbc:mysql://127.0.0.1:3306/flyway?useUnicodetruecharacterEncodingUTF-8allowMultiQueriestruerewriteBatchedStatementstrueuseSSLfalseserverTimezoneGMT%2B8username: rootpassword: 111111flyway:enabled: true# 禁止清理数据库表clean-disabled: true# 如果数据库不是空表需要设置成 true否则启动报错baseline-on-migrate: true# 与 baseline-on-migrate: true 搭配使用baseline-version: 0# 不配置默认为 db/migration 目录locations:- classpath:db/migration/mysql 如果 flyway 不是项目初期引入而是在数据库已有表的情况下引入时必须设置 baseline-on-migrate: true此时没有配置 baseline-version: 0设置该配置启动项目后flyway 就会在数据库中创建 flyway_schema_history 表并且会往该表中插入一条 version 1 的建表记录如果迁移数据有 V1__ 开头的文件扫描文件会忽略该文件不执行迁移进而可能引发其他迁移数据出错的问题 因为没有执行 V1__ 开头的文件那么库中就不创建 PERSON 表在迁移 V2 插入数据时就会插入失败 所以出现如上问题后我们可以先删除flyway_schema_history  表然后配置文件中设置  baseline-version: 0 即可或者说修改数据迁移文件名称也是可行的 其他问题 版本问题 SpringBoot 2.4.4 集成 flyway 版本 7.1.1 Oracle12.1.0.2 标准版可以执行企业版不行 SpringBoot 2.6.0 集成 flyway 版本 8.0.4 Oracle12.1.0.2 都可以执行 SQL 脚本命名规范 PrefixVersionSeparatorDescriptionSuffix Prefix 前缀V 代表版本迁移U 代表撤销迁移R 代表可重复迁移 Version 版本号版本号通常 . 和整数组成 Separator 分隔符固定由两个下划线 __ 组成 Description 描述由下划线分隔的单词组成用于描述本次迁移的目的 Suffix 后缀如果是 SQL 文件那么固定由 .sql 组成如果是基于 Java 类则默认不需要后缀 参考链接 数据库/SQL 版本管理工具选型指北Flyway、Liquibase、Bytebase、阿里 DMSjava - Spring Boot 集成 Flyway数据库也能做版本控制Flyway 简单入门教程 - 掘金 (juejin.cn)SpringBoot 集成 flyway - 简书 (jianshu.com)Flyway 快速上手教程 - 简书 (jianshu.com) 本文由博客一文多发平台 OpenWrite 发布
http://wiki.neutronadmin.com/news/373934/

相关文章:

  • WordPress养老院主题青岛seo网站关键词优化
  • 温州市永嘉上塘建设局网站seo优化网站查询
  • 株洲企业网站建设品牌wordpress注册插件中文版
  • 云南网站开发公司wordpress书籍主题
  • 郑州网站优化平台wordpress绿色框
  • 金融网站开发文档北京网站建设推广服
  • django网站开发逻辑设计网站网络营销公司
  • 红色旅游网站页面建设广州网站关键排名
  • 网站模板 北京公司手表网站制作模板
  • 盐城公司做网站备份wordpress网站
  • iis 没有新建网站嘉兴网站建设哪家做得好
  • ps如何做网站专题珠海市住房建设局网站
  • 做网站的公司天津小网站做长尾词还是流量词
  • 哪里有网站建设联系方式wordpress seo 链接
  • 濮阳免费网站建设专业行业网站建设
  • 怎么制作个人网站建设银行网站设计的优点
  • 手机电子商务网站建设策划书德令哈网站建设公司
  • 建设网站需要申请报告网页网站设计用什么软件
  • 网站如何让百度收录做网站找我图片
  • 做汽车配件网站的公司如何建立网站教材
  • 音乐影视类网站建设中建八局第一建设有限公司资质
  • 网页制作网站开发网站外推和优化
  • 宣传海报在什么网站做网店怎么开起来
  • 做版面的网站个人建站提供软件下载
  • 网站打开速度概念郑州营销型网站建设哪家好
  • 灰色网站怎么做网站建站常见问题
  • iis网站批量导入一般网络推广应该怎么做
  • 网站运营数据周报表怎么做太原网站的公司
  • 高唐建筑公司网站电子商务网站设计岗位主要是
  • 外贸企业论坛网站建设提升网站排名