|
|
|
@ -2,53 +2,58 @@ CREATE DATABASE IF NOT EXISTS `dtm` /*!40100 DEFAULT CHARACTER SET utf8mb4 */; |
|
|
|
|
|
|
|
use dtm; |
|
|
|
|
|
|
|
drop table IF EXISTS saga; |
|
|
|
CREATE TABLE IF NOT EXISTS `saga` ( |
|
|
|
drop table IF EXISTS trans_global; |
|
|
|
CREATE TABLE if not EXISTS `trans_global` ( |
|
|
|
`id` int(11) NOT NULL AUTO_INCREMENT, |
|
|
|
`gid` varchar(45) NOT NULL COMMENT '事务全局id', |
|
|
|
`steps` json NOT NULL COMMENT 'saga的所有步骤', |
|
|
|
`status` varchar(45) NOT NULL COMMENT '全局事务的状态 prepared | processing | succeed | failed', |
|
|
|
`trans_query` varchar(128) NOT NULL COMMENT '事务未决状态的查询api', |
|
|
|
`finish_time` datetime DEFAULT NULL, |
|
|
|
`rollback_time` datetime DEFAULT NULL, |
|
|
|
`gid` varchar(128) NOT NULL COMMENT '事务全局id', |
|
|
|
`trans_type` varchar(45) not null COMMENT '事务类型: saga | xa', |
|
|
|
`data` TEXT COMMENT '事务携带的数据', |
|
|
|
`status` varchar(45) NOT NULL COMMENT '全局事务的状态 prepared | committed | finished | rollbacked', |
|
|
|
`query_prepared` varchar(128) NOT NULL COMMENT 'prepared状态事务的查询api', |
|
|
|
`create_time` datetime DEFAULT NULL, |
|
|
|
`update_time` datetime DEFAULT NULL, |
|
|
|
`commit_time` datetime DEFAULT NULL, |
|
|
|
`finish_time` datetime DEFAULT NULL, |
|
|
|
`rollback_time` datetime DEFAULT NULL, |
|
|
|
`owner` varchar(128) not null default '' comment '正在处理全局事务的锁定者', |
|
|
|
PRIMARY KEY (`id`), |
|
|
|
UNIQUE KEY `gid` (`gid`), |
|
|
|
key `owner`(`owner`), |
|
|
|
KEY `create_time` (`create_time`), |
|
|
|
KEY `update_time` (`update_time`) |
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
|
|
|
|
|
|
|
drop table IF EXISTS saga_step; |
|
|
|
CREATE TABLE IF NOT EXISTS `saga_step` ( |
|
|
|
drop table IF EXISTS trans_branch; |
|
|
|
CREATE TABLE IF NOT EXISTS `trans_branch` ( |
|
|
|
`id` int(11) NOT NULL AUTO_INCREMENT, |
|
|
|
`gid` varchar(45) NOT NULL COMMENT '事务全局id', |
|
|
|
`data` json DEFAULT NULL COMMENT '请求所携带的数据', |
|
|
|
`step` int(11) NOT NULL COMMENT '处于saga中的第几步', |
|
|
|
`gid` varchar(128) NOT NULL COMMENT '事务全局id', |
|
|
|
`url` varchar(128) NOT NULL COMMENT '动作关联的url', |
|
|
|
`type` varchar(45) NOT NULL COMMENT 'saga的所有步骤', |
|
|
|
`status` varchar(45) NOT NULL COMMENT '步骤的状态 prepared | succeed | failed', |
|
|
|
`data` TEXT COMMENT '请求所携带的数据', |
|
|
|
`branch` VARCHAR(128) NOT NULL COMMENT '事务分支名称', |
|
|
|
`branch_type` varchar(45) NOT NULL COMMENT '事务分支类型 saga_action | saga_compensate | xa', |
|
|
|
`status` varchar(45) NOT NULL COMMENT '步骤的状态 committed | finished | rollbacked', |
|
|
|
`finish_time` datetime DEFAULT NULL, |
|
|
|
`rollback_time` datetime DEFAULT NULL, |
|
|
|
`create_time` datetime DEFAULT NULL, |
|
|
|
`update_time` datetime DEFAULT NULL, |
|
|
|
PRIMARY KEY (`id`), |
|
|
|
UNIQUE KEY `gid` (`gid`,`step`), |
|
|
|
UNIQUE KEY `gid` (`gid`,`branch`, `branch_type`), |
|
|
|
KEY `create_time` (`create_time`), |
|
|
|
KEY `update_time` (`update_time`) |
|
|
|
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4; |
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
|
|
|
|
|
|
|
drop table IF EXISTS trans_log; |
|
|
|
CREATE TABLE IF NOT EXISTS `trans_log` ( |
|
|
|
`id` int(11) NOT NULL AUTO_INCREMENT, |
|
|
|
`gid` varchar(45) NOT NULL COMMENT '事务全局id', |
|
|
|
`step` int(11) DEFAULT NULL COMMENT 'saga的步骤', |
|
|
|
`gid` varchar(128) NOT NULL COMMENT '事务全局id', |
|
|
|
`branch` varchar(128) DEFAULT NULL COMMENT '事务分支', |
|
|
|
`action` varchar(45) DEFAULT NULL COMMENT '行为', |
|
|
|
`status` varchar(45) NOT NULL COMMENT '状态', |
|
|
|
`detail` json NOT NULL COMMENT '行为之后的status', |
|
|
|
`old_status` varchar(45) NOT NULL DEFAULT '' COMMENT '旧状态', |
|
|
|
`new_status` varchar(45) NOT NULL COMMENT '新状态', |
|
|
|
`detail` TEXT NOT NULL COMMENT '行为记录的数据', |
|
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP, |
|
|
|
PRIMARY KEY (`id`), |
|
|
|
KEY `gid` (`gid`), |
|
|
|
KEY `create_time` (`create_time`) |
|
|
|
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=utf8mb4; |
|
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; |
|
|
|
|
|
|
|
|