您的位置:首页 > 其它

Mybatis Migrations 粗体验

2016-09-21 11:32 183 查看
摘要: 数据库版本控制系统 Mybatis Schema Migrations 简单上手

Mybatis Schema Migrations 简介

MyBatis Schema Migrations( http://code.google.com/p/mybatis/wiki/Migration)是一个开源的用于DB版本控制的命令行工具,Migrations 通过生成 统一格式的DDL脚本模板 、在目标DB中 记录版本信息和当前状态 ,使得 多人开发团队可以在 多个DB环境 上井然有序的工作,为敏捷和迭代开发提供强有力的技术保障。

Mybatis Schema Migrations 安装

1). 解压缩 mybatis-migrations-3.2.0.zip 至任意目录;

2). 编辑 bin 目录内的命令文件 migrate.cmd,配置 Java 环境参数;

@echo off
set JAVA_HOME=C:\Program Files\Java\jre1.8.0_31
set PATH=%JAVA_HOME%\bin;%PATH%
set MIGRATIONS_HOME=D:\mybatis-migrations-3.2.0
set PATH=%MIGRATIONS_HOME%\bin;%PATH%


3). 将 mybatis-migrations 的 bin 目录加入到系统 PATH 内。

创建一个 workspace 并初始化

1). 进入任意工作目录,执行初始化命令;

migrate init testdb




2). 初始化完成后,会在工作目录下生成3个文件夹;

drivers -- 用于存放数据库驱动文件(mysql-connector-java-5.1.28-bin.jar)
environments -- 用于存放配置文件(development.properties)
scripts -- 用于存放 .sql 文件




3). 修改配置文件 development.properties

## Base time zone to ensure times are consistent across machines
time_zone=GMT+8:00
## JDBC connection properties.
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.1.133/test
username=dbuser
password=[the-password-you-used]
# This ignores the line delimiters and
# simply sends the entire script at once.
# Use with JDBC drivers that can accept large
# blocks of delimited text at once.
send_full_script=false


4). 配置完成后确认当前工作区状态;

migrate status




可以看到当前有两个操作处于 pending 状态,即表示尚未执行。

5). 第一次执行向前更新操作,即创建当前数据库的基线记录;

migrate up






操作成功后可以看到 MySQL 下对应的数据库(test
3ff0
)中生成一个新的表——CHANGELOG,该表用于记录所有的 migrations 操作。至此,针对数据库 test 的初始化操作完成。



通过 Mybatis Schema Migrations 进行数据库的版本控制(新增操作)

1). 创建一个新的数据库变更(新增表);

migrate new "ops add table tbl_for_migrations"






创建后可以在 scripts 目录下看到对应生成的 .sql 脚本文件;

2). 编辑该文件,加入相应的建表及用于回滚 SQL 语句;



注意: //@UNDO 下的内容用于回滚操作。

3). 查看当前的工作区状态;

migrate status




可以看到新增的操作处于 pending 状态。

4). 执行向前更新操作;

migrate up




5). 再次查看当前的工作区状态;

migrate status




可以看到该操作已经成功执行。

6). 在 MySQL 中查看新增表;



7). 在 MySQL 中查看 CHANGELOG 表变更情况;



可以看到 CHANGELOG 表对新增表的操作进行了记录。

通过 Mybatis Schema Migrations 进行数据库的版本控制(回滚操作)

1). 执行回滚操作;

migrate down




2). 重新查看当前工作区状态;



可以看到新增表的操作用重新回到了 pending 状态;

3). 在 MySQL 中查看 CHANGELOG 表变更情况;



先前新增表的记录已经删除。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mybatis migrations