File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments