Skip to content

Commit 9362ba7

Browse files
author
core-lib
committed
支持自动备份
1 parent 7dbc313 commit 9362ba7

3 files changed

Lines changed: 19 additions & 3 deletions

File tree

README.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
<dependency>
3737
<groupId>com.github.core-lib</groupId>
3838
<artifactId>sqlman</artifactId>
39-
<version>v1.0.6</version>
39+
<version>v1.1.0</version>
4040
</dependency>
4141
```
4242
## Spring-Boot 集成
@@ -52,6 +52,10 @@ sqlman:
5252
manager: jdbc
5353
# 当项目有多个数据源时,指定对应的数据源 bean 名称
5454
data-source: dataSource
55+
# 缺省事务隔离级别
56+
default-isolation: REPEATABLE_READ
57+
# 缺省执行模式
58+
default-mode: DANGER
5559
# 方言配置
5660
dialect:
5761
# 版本记录表表名
@@ -183,13 +187,20 @@ SQL脚本需要遵循一定的命名规则以配合SQLMan进行版本高低的
183187
| READ_COMMITTED | 读已提交隔离级别 | 设置SQL语句执行事务的隔离界别为读已提交 | 依赖数据源的事务隔离级别 |
184188
| REPEATABLE_READ | 可重复读隔离级别 | 设置SQL语句执行事务的隔离界别为可重复读 | 依赖数据源的事务隔离级别 |
185189
| SERIALIZABLE | 串行化隔离级别 | 设置SQL语句执行事务的隔离界别为串行化 | 依赖数据源的事务隔离级别 |
190+
| SAFETY | 安全模式 | 当SQL脚本设置为安全模式,即每条SQL语句执行前会自动备份被操作的表 | 危险模式 |
191+
| DANGER | 危险模式 | 当SQL脚本设置为安全模式,即每条SQL语句执行前不自动备份被操作的表 | 危险模式 |
186192

187193
其中每个SQL脚本的隔离级别只能选取一种,通常情况下依赖隔离级别的脚本需要原子性执行即通过-ATOMIC指令来指定,缺省为one-by-one模式。
194+
同理执行模式也只能在危险模式中选取一种,备份表的名称为 原表名_bak_脚本_版_本_号$语句下标
188195

189196
## 原子模式
190197
* 缺省模式的多SQL语句脚本在执行过程中,当其中某条SQL执行失败后,程序下次启动时将会从该脚本的**失败SQL**开始。
191198
* 原子模式的多SQL语句脚本在执行过程中,当其中某条SQL执行失败后,程序下次启动时将会从该脚本的**首条SQL**开始。
192199

200+
## 执行模式
201+
* 安全模式:即每条SQL语句执行前**会自动备份**被操作的表
202+
* 危险模式:即每条SQL语句执行前**不自动备份**被操作的表
203+
193204
## 注意事项
194205
由于部分数据库不支持 DDL 语句的失败回滚,例如 MySQL ,所以当一个原子性多SQL语句脚本中包含有 DDL 语句时,
195206
其后面的SQL语句执行失败且进行整体回滚后,其实已成功的 DDL 并没有真正回滚,又由于是原子性脚本,所以程序下次启动时会从该脚本的首条SQL开始执行,
@@ -204,6 +215,8 @@ SQL脚本需要遵循一定的命名规则以配合SQLMan进行版本高低的
204215
后续将会增加更多数据库的支持。
205216

206217
## 版本记录
218+
* v1.1.0
219+
1. 支持表自动备份
207220
* v1.0.6
208221
1. Spring Bean 命名规范
209222
* v1.0.5

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>io.sqlman</groupId>
88
<artifactId>sqlman</artifactId>
9-
<version>v1.0.6</version>
9+
<version>v1.1.0</version>
1010

1111
<name>sqlman</name>
1212

src/test/resources/application.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,7 @@ spring:
88
driverClassName: com.mysql.cj.jdbc.Driver
99
url: jdbc:mysql://localhost:3306/sqlman?serverTimezone=GMT%2B8&useSSL=false
1010
username: root
11-
password: root
11+
password: root
12+
13+
sqlman:
14+
default-isolation: REPEATABLE_READ

0 commit comments

Comments
 (0)