feat(db): add account and role Flyway migrations
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
package com.sino.mci.config;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.flywaydb.core.Flyway;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@ConditionalOnProperty(prefix = "spring.flyway", name = "enabled", havingValue = "true", matchIfMissing = true)
|
||||
public class FlywayConfig {
|
||||
|
||||
@Bean(initMethod = "migrate")
|
||||
public Flyway flyway(DataSource dataSource) {
|
||||
return Flyway.configure()
|
||||
.dataSource(dataSource)
|
||||
.locations("classpath:db/migration")
|
||||
.baselineOnMigrate(true)
|
||||
.load();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
CREATE TABLE IF NOT EXISTS mci_tenant (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
tenant_code VARCHAR(64) NOT NULL UNIQUE COMMENT '租户编码',
|
||||
tenant_name VARCHAR(128) NOT NULL COMMENT '租户名称',
|
||||
auth_config JSON COMMENT '认证配置',
|
||||
inbound_webhook_url VARCHAR(512) COMMENT '入站消息推送地址',
|
||||
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0禁用 1启用',
|
||||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
deleted TINYINT NOT NULL DEFAULT 0
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户/业务系统表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS mci_platform_role (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
role_code VARCHAR(64) NOT NULL UNIQUE COMMENT '角色编码',
|
||||
role_name VARCHAR(128) NOT NULL COMMENT '角色名称',
|
||||
permissions JSON COMMENT '权限列表',
|
||||
status TINYINT NOT NULL DEFAULT 1,
|
||||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台角色表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS mci_user (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
tenant_code VARCHAR(64) NOT NULL COMMENT '所属租户',
|
||||
username VARCHAR(64) NOT NULL COMMENT '用户名',
|
||||
password VARCHAR(256) NOT NULL COMMENT '加密密码',
|
||||
real_name VARCHAR(128) COMMENT '真实姓名',
|
||||
phone VARCHAR(32) COMMENT '手机号',
|
||||
email VARCHAR(128) COMMENT '邮箱',
|
||||
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态:0禁用 1启用',
|
||||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
deleted TINYINT NOT NULL DEFAULT 0,
|
||||
UNIQUE KEY uk_tenant_username (tenant_code, username, deleted)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='中台用户表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS mci_user_role (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||||
role_id BIGINT NOT NULL COMMENT '角色ID',
|
||||
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
UNIQUE KEY uk_user_role (user_id, role_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户角色关系表';
|
||||
@@ -0,0 +1,4 @@
|
||||
INSERT INTO mci_platform_role (role_code, role_name, permissions) VALUES
|
||||
('admin', '租户管理员', '["*"]'),
|
||||
('operator', '运营操作员', '["send:write", "channel:read", "channel:write", "record:read"]'),
|
||||
('viewer', '只读用户', '["record:read", "channel:read"]');
|
||||
Reference in New Issue
Block a user