数据库版本管理工具Flyway(4.0.3)---工作机制(译文)
How Flyway works
The easiest scenario is when you point Flyway to an empty database.
最容易的方案是Flyway指向一个空的数据库。

It will try to locate its metadata table. As the database is empty. Flyway won't find it and will create it instead.
FlyWay将试图查找它的元数据表。因为数据库是空的。Flyway找不到它的元数据表,然后就会去创建它的元数据表。
You now have a database with a single empty table called SCHEME_VERSION by default:
现在呢,我们就有一个数据库,这个数据库包含一个缺省的空表SCHEME_VERSION :

This table will be used to track the state of the databse.
这张表将被用于监测数据库的状态。
Immediately afterwards Flyway will begin scanning the filesystem or the classpath of the application for migrations.They can be written in either Sql or Java.
紧接着Flyway将开始扫描文件系统或者应用的类路径进行迁移。这些迁移文件可以是SQL脚本或者是java程序。
The migrations are then sorted besed on their version number and applied in order.
这些迁移文件按照版本号进行排序并且按照这个排序去执行。

As each migration gets applied,the metadata table is updated accordingly:
当每一个迁移文件被执行后,元数据的表就会按照格式进行更新。
schema_version

With the metabata and the initial state in palce,we can now talk about migrating to newer versions.
这样我们就可以根据元数据和数据库初始化的状态,进行数据库升级了。
Flyway will once agein scan the filesystem or the classpath of the application of the migrations. The migrations are checked against the metadata table. If their version number is lower or equal to the one of the version maked as current, they are ignored.
当Flyway 再次扫描迁移的时候,它就会检查元数据表中迁移版本,如果要执行的迁移脚本的版本小于或者等于当前版本,Flyway将会忽略,不再重复执行。
The remaining migrations are the pending migrations : available , but not applied.
剩下的迁移脚本将会被执行迁移:可获取的并且没有被执行过的脚本。

They are then sorted by version number and executed in order:
这些迁移文件根据版本号进行排序并且有序执行。

The metadata table is updated accordingly:
元数据的表也会做相应的更新:

And that's it! Every time the need to evolve the database arises, whether structure (DDL) or reference data (DML), simply create a new migration with a version number higher than the current one. The next time Flyway starts, it will find it and upgrade the database accordingly.
这样的话,每次要做数据库升级,无论是执行DDL语句还是执行DML语句,所有的解决的问题的就是创建一个高于现在版本的迁移文件。当下一次Flyway开始运行的时候,它将会自动发现升级脚本,执行并且更新元数据表。
数据库版本管理工具Flyway(4.0.3)---工作机制(译文)的更多相关文章
- 数据库版本管理工具Flyway(4.0.3)---介绍(译文)
Flyway Evolve your Database Schema easily and reliably across all your instances 简单的.可靠的升级(发展)你的数据库模 ...
- [jOOQ中文]3. 数据库版本管理工具Flyway
https://segmentfault.com/a/1190000010526452 在执行数据库迁移时,我们推荐使用jOOQ与Flyway - 数据库迁移轻松. 在本章中,我们将简单的来使用这两个 ...
- 数据库版本管理工具--Flyway的使用
软件开发正常流程是:开发环境 ---> 测试环境 ----> 产环境 在开发过程中经常需要变更数据库: 表结构变更. 基础数据变更. 最直接的做法是:用客户端连上数据库直接修改. 依次修 ...
- 数据库版本管理工具Flyway——基础篇
Flyway 默认规约 SQL 脚本文件默认位置是项目的源文件夹下的db/migration 目录. Java 代码默认位于db.migration 包. SQL 脚本文件及Java 代码类名必须遵循 ...
- 数据库版本管理工具flyway
引入flyway_core jar包 java 代码实现 public class FlywayMigration { @Resource private DataSource dataSource ...
- 【flyway】开源的数据库版本管理工具【migration】
开源的数据库版本管理工具[migration] 记录
- 在SpringBoot中使用flyway进行数据库版本管理
本文大纲 flyway是什么 能帮助我们解决什么问题 springboot环境下使用flyway flyway的工作原理 一.flyway是什么 Flyway是一个开源的数据库版本管理工具,并且极力主 ...
- Java敏捷数据库迁移框架——Flyway
1.引言 想到要管理数据库的版本,是在实际产品中遇到问题后想到的一种解决方案,当时各个环境的数据库乱作一团,没有任何一个人(开发.测试.维护人员)能够讲清楚当前环境下的数据库是哪个版本,与哪个版本的应 ...
- 使用alembic进行数据库版本管理
前言 随着项目业务需求的不断变更,数据库的表结构修改难以避免,此时就需要对数据库的修改加以记录和控制,便于项目的版本管理和随意的升级和降级. Alembic就可以很好的解决这个问题.Alembic是S ...
随机推荐
- ·数据库基本内容回顾-day16.06.30
一. 模式的定义和删除 ---创建了一个模式,就创建了一个数据库命名空间,一个框架.cascade.restrict create schema<模式名> authorization & ...
- mui实现自动登录
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name= ...
- asp.net中应用JQuery.pagination分页
JQuery.pagination这款分页控件非常好用,可实现无刷新分页,为了方便下次做项目便于拷贝,所以在此发布一下,具体的实现流程如下: 效果图: JQuery.pagination的各个参数的说 ...
- 在Oracle中查询表的大小、表的占用情况和表空间的大小
转载自http://blog.csdn.net/cuker919/article/details/8514253 select segment_name, bytes as 大小 from user_ ...
- java 对list中对象按属性排序
实体对象类 --略 排序类----实现Comparator接口,重写compare方法 package com.tang.list; import java.util.Comparator; publ ...
- Core Data 学习简单整理01
Core Data是苹果针对Mac和iOS平台开发的一个框架, 通过CoreData可以在本地生成数据库sqlite,提供了ORM的功能,将对象和数据模型相互转换 . 通过Core Data管理和操作 ...
- 《Linux内核分析》 week5作业-system call中断处理过程
一.使用gdb跟踪分析一个系统调用内核函数 1.在test.c文件中添加time函数与采用c语言内嵌汇编的time函数.具体实现请看下图. 2.然后在main函数中添加MenuConfig函数,进行注 ...
- 磁盘阵列RAID
磁盘阵列RAID 年提出的.RAID名为独立 ...
- Axure自动幻灯片制作
1.打开axure7,开始. 2.拖一个占位符组件到布局上(当然也可以是矩形.图片之类的),大小270*170,作为幻灯片的第一张片子,双击写上“第一张片子”. 3.拖一个矩形,设置形状为椭圆,调整大 ...
- seo初学
对前端而言,做网站采用扁平式结构:控制网页链接数量,不能太少,当然也不能太多:其次采用扁平的目录层次,不能超过3次:三:导航优化,最好是文字,如果是图片的话,alt和title必须添加. 面包屑导航: ...