数据库版本管理工具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开始运行的时候,它将会自动发现升级脚本,执行并且更新元数据表。

时间: 2024-10-14 00:54:06

数据库版本管理工具Flyway(4.0.3)---工作机制(译文)的相关文章

数据库版本管理工具Flyway——基础篇

Flyway 默认规约 SQL 脚本文件默认位置是项目的源文件夹下的db/migration 目录. Java 代码默认位于db.migration 包. SQL 脚本文件及Java 代码类名必须遵循以下命名规则:V[_][__description] .版本号的数字间以小数点(. )或下划线(_ )分隔开,版本号与描述间以连续的两个下划线(__ )分隔开.如V1_1_0__Update.sql .Java 类名规约不允许存在小数点,所以Java 类名中版本号的数字间只能以下划线进行分隔. <p

Deltasql 数据库版本管理工具学习笔记

一.Deltasql 功能 二.Deltasql服务器端和客户端的安装 2.1 Deltasql服务器端的安装 2.2 Deltasql客户端的安装 三.Deltasql的使用 四.Deltasql 原理 五.还待研究的地方 一.Deltasql 功能 目前我们对数据库的管理是比较少的,尤其在对数据库版本的控制方面.比如说当我们想恢复到以前的数据库版本,当客户A需要X版本的数据库,客户B需要Y版 本的数据库,当发布项目的时候项目的数据库和开发人员的数据库是否一致,等等这些问题解决起来还是会有一定

数据库版本管理工具dbdeploy(ant+hsqldb篇)

注意:jdk版本必须是1.5或者更高版本 1.下载dbdeploy-dist-3.0M3-distribution.zip文件 2.解压改文件,随便在哪 3.打开命令面板,切换目录到example下 4.确定你安装了ant,并且配置好了环境变量. 5.执行ant命令 6.你将看到下面的输出信息 例如,为简单起见,使用一个HSQLDB,包括在分配本地文件的版本.dbdeploy支持其他数据库包含Oracle,MySQL和微软SQL服务器. 删除和创建新目录使例子每次都以一个干净的库开始. 上面表明

数据库互转工具 DB2DB v1.0

最近公司有一个项目,需要把原来的系统从 MSSQL 升迁到阿里云RDS(MySQL)上面.为便于测试,所以需要把原来系统的所有数据表以及测试数据转换到 MySQL 上面.在百度上找了很多方法,有通过微软 DTS 的,也有使用 mss2sql 工具进行转换的.使用 DTS 需要预先创建好数据表,否则新迁移的数据库是没有主键的.而 mss2sql 工具可以解决以上问题,但转换速度非常慢!我需要转换 3000 万的数据,在一台相当不错的服务器上面,也需要几天几夜才能转换完成.而 DB2DB 就是在这样

SQL数据库同步工具(开辟数据同步工具)2.0 中文免费版

SQL数据库同步工具(开辟数据同步工具)本系统分为客户端和服务器两个部分,其中客户端承担了系统绝大数事务,服务器只是简单的执行客户端传送的命令,属于典型的C/S胖客户端瘦服务器模式.这样设计的目的是为了减轻服务器的压力,让系统更加流畅. 本系统分为客户端和服务器两个部分,其中客户端承担了系统绝大数事务,服务器只是简单的执行客户端传送的命令,属于典型的C/S胖客户端瘦服务器模式.这样设计的目的是为了减轻服务器的压力,让系统更加流畅. 客户端负责采集分布数据库中的数据,然后汇总到服务器.客户端需要配

python版本管理工具pyenv和包管理工具pipenv

一.pyenv版本管理工具 pyenv是一个python版本管理工具,可以实现轻松切换多个python版本 它可根据每个用户更改全局python版本,也可以为每个项目指定python版本,还可以管理virtualenv虚拟环境,可以自己创建virtualenv或者通过pyenv-virtualenv来自动化创建虚拟环境 pyenv通过PATH环境变量来匹配切换python或者pip的工作目录,pyenv通过读取工作环境来指定使用哪个python版本,如在当前会话中查找PYENV_VERSION环

编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)

第一步 1.准备好Mysql数据库安装文件,Qt5.0完整的离线安装包,以及Qt5.0的完整的源代码.安装好程序,假设Mysql的安装路径为:C:\MySQL5.5,Qt5.0的安装路径:C:\Qt\Qt5.0.0-rc2\5.0.0-rc2,而Qt5.0的解压路径为:C:\Qt\qt-5.0.1-src. 注意事项:(1)安装mysql数据库的时候,网上很多教程说要选择自定义安装,并把lib和include这个选项选上.其实这个并不重要.因为我机器上很久前装mysql时选的是typical安装

版本管理工具git与svn简介

版本管理工具 版本管理工具简介 常见版本管理工具 cvs(Concurrent Versions System) vss(Visual SourceSafe) svn 常用的版本管理工具 git 流行的版本管理工具(分支管理强于svn) bitkeeper hg cc(ClearCase) SVN 常用指令 checkout 下载代码 update 从服务器更新本地代码代码 add 向服务器添加文件 commit 提交本地的更改到服务器 showlog 查看版本日志 GIT git init 新

mysql5.7 innodb数据库备份工具Xtrabackup的安装

mysql5.7 innodb数据库备份工具Xtrabackup的安装     wget mhttps://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.7/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.7-1.el6.x86_64.rpm Mysql5.7需要安装XtraBackup 2.4.1以上版本 官网地址 https://www.percona.com/down