1.安装MyBatis Migrations
从MyBatis Migrations Github Releases下载最新版MyBatis Migrations。
wget -c https://github.com/mybatis/migrations/releases/download/mybatis-migrations-3.3.11/mybatis-migrations-3.3.11-bundle.zip
解压并重命名
unzip -q mybatis-migrations-3.3.11-bundle.zip
mv mybatis-migrations-3.3.11 mybatis-migrations
移动到/opt目录
sudo mv mybatis-migrations /opt
配置MIGRATIONS_HOME、MIGRATIONS、PATH环境变量
echo 'export MIGRATIONS_HOME="/opt/mybatis-migrations"' >> ~/.bashrc
echo 'export MIGRATIONS="$MIGRATIONS_HOME/bin"' >> ~/.bashrc
echo 'export PATH="$MIGRATIONS:$PATH"' >> ~/.bashrc
清理
rm mybatis-migrations-3.3.11-bundle.zip
重启终端,验证安装是否成功
migrate info
2.初始化迁移路径
假设Spring Boot项目目录名称为demo,位于用户目录下。
注:Migrations目录无需手动创建,会被自动创建。
migrate init --path=~/demo/Migrations
最终Migrations目录结构如下:
/Migrations
/drivers
mysql-connector-java-8.0.30.jar
/environments
development.properties
test.properties
production.properties
/scripts
20220903111800_create_changelog.sql
20220903111801_first_migration.sql
bootstrap.sql
README
3.安装MySQL驱动
下载Connector/J 8.0.30驱动。
wget -c https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.30.tar.gz
解压
tar -zxf mysql-connector-java-8.0.30.tar.gz
复制mysql-connector-java-8.0.30.jar到Migrations/drivers目录
cd mysql-connector-java-8.0.30
cp mysql-connector-java-8.0.30.jar ~/demo/Migrations/drivers
清理
cd
rm mysql-connector-java-8.0.30.tar.gz
rm -rf mysql-connector-java-8.0.30
4.development.properties
需提前手动创建好数据库。
## 时区
time_zone=GMT+8:00
## 脚本编码字符集
# script_char_set=UTF-8
## 跟踪数据库更改的表名
changelog=CHANGELOG
## JDBC连接属性
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/springblog
username=root
password=Password-4-Root
## 配置驱动路径,默认"migrate init"创建的driver目录
# driver_path=
## 逗号语句分隔符
delimiter=;
## 整行分隔符,比如"GO" 或 "/" 或 "!RUN!"
full_line_delimiter=false
## 如果为true:忽略逗号语句分隔符,把所有语句当成一条语句发送
## 如果为false:凡遇到逗号语句分隔符,迁移语法会自动断句,当成多条语句发送
## 应用场景:函数等内嵌的逗号语句分隔符与迁移语法的逗号语句分隔符冲突
## 解决方案1:配置为true,忽略逗号语句分隔符,把所有语句当成一条语句发送
## 解决方案2:配置为flase,使用整行分隔符替代函数等内嵌的逗号语句分隔符
send_full_script=false
## 如果为true,每条语句被隔离在自己的事务中
## 如果为flase,整个脚本在一个事务中执行
## 很少有数据库需要配置为true
auto_commit=false
## 如果为flase,从数据库返回的警告将中断迁移
ignore_warnings=true
## 变量
## 迁移文件使用${变量名}调用
# 变量名=值
5.20220903111801_first_migration.sql
20220903111801_first_migration.sql为一个空的示例迁移脚本,示例代码如下:
-- // First migration.
-- Migration SQL that makes the change goes here.
CREATE TABLE BLOG (
ID INT,
NAME VARCHAR(255),
PRIMARY KEY(ID)
);
-- //@UNDO
-- SQL to undo the change goes here.
DROP TABLE BLOG;
new
命令可以帮助我们自动生成迁移脚本的骨架
cd ~/demo/Migrations
migrate new "create blog table"
//自动生成示例
20090807221758_create_blog_table.sql
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/java/mybatis-migrations/17036.html