c279b0a6e4
- Add R2DBC database initialization configuration - Fix schema-h2.sql Chinese comments issue - Add spring-security-test dependency - Create comprehensive integration tests for operation log - Tests cover create, delete, and error scenarios Closes #2
254 lines
8.0 KiB
Plaintext
254 lines
8.0 KiB
Plaintext
-- H2数据库Schema for Integration Testing
|
|
-- Create用户表
|
|
CREATE TABLE IF NOT EXISTS sys_user (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(50) NOT NULL UNIQUE,
|
|
password VARCHAR(255) NOT NULL,
|
|
email VARCHAR(100),
|
|
phone VARCHAR(20),
|
|
nickname VARCHAR(100),
|
|
role_id BIGINT,
|
|
status INTEGER DEFAULT 1,
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create角色表
|
|
CREATE TABLE IF NOT EXISTS sys_role (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
role_name VARCHAR(100) NOT NULL,
|
|
role_key VARCHAR(100) NOT NULL UNIQUE,
|
|
role_sort INTEGER DEFAULT 0,
|
|
status INTEGER DEFAULT 1,
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create用户角色关联表
|
|
CREATE TABLE IF NOT EXISTS user_role (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id BIGINT NOT NULL,
|
|
role_id BIGINT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
created_by VARCHAR(50),
|
|
CONSTRAINT fk_user_role_user FOREIGN KEY (user_id) REFERENCES sys_user(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_user_role_role FOREIGN KEY (role_id) REFERENCES sys_role(id) ON DELETE CASCADE,
|
|
CONSTRAINT uk_user_role UNIQUE (user_id, role_id)
|
|
);
|
|
|
|
-- Create菜单表
|
|
CREATE TABLE IF NOT EXISTS sys_menu (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
menu_name VARCHAR(50) NOT NULL,
|
|
parent_id BIGINT DEFAULT 0,
|
|
order_num INTEGER DEFAULT 0,
|
|
path VARCHAR(200),
|
|
component VARCHAR(200),
|
|
menu_type VARCHAR(1) DEFAULT 'C',
|
|
visible VARCHAR(1) DEFAULT '1',
|
|
status VARCHAR(1) DEFAULT '1',
|
|
perms VARCHAR(100),
|
|
icon VARCHAR(100),
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create权限表
|
|
CREATE TABLE IF NOT EXISTS sys_permission (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
permission_name VARCHAR(100) NOT NULL,
|
|
permission_code VARCHAR(100) NOT NULL UNIQUE,
|
|
resource VARCHAR(200),
|
|
action VARCHAR(20),
|
|
description VARCHAR(500),
|
|
status INTEGER DEFAULT 1,
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create角色权限关联表
|
|
CREATE TABLE IF NOT EXISTS sys_role_permission (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
role_id BIGINT NOT NULL,
|
|
permission_id BIGINT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
created_by VARCHAR(50),
|
|
updated_by VARCHAR(50),
|
|
CONSTRAINT fk_role_permission_role FOREIGN KEY (role_id) REFERENCES sys_role(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_role_permission_permission FOREIGN KEY (permission_id) REFERENCES sys_permission(id) ON DELETE CASCADE,
|
|
CONSTRAINT uk_role_permission UNIQUE (role_id, permission_id)
|
|
);
|
|
|
|
-- Create字典类型表
|
|
CREATE TABLE IF NOT EXISTS sys_dict_type (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
dict_name VARCHAR(100) NOT NULL,
|
|
dict_type VARCHAR(100) NOT NULL UNIQUE,
|
|
status VARCHAR(1) DEFAULT '0',
|
|
remark VARCHAR(500),
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create字典数据表
|
|
CREATE TABLE IF NOT EXISTS sys_dict_data (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
dict_sort INTEGER DEFAULT 0,
|
|
dict_label VARCHAR(100) NOT NULL,
|
|
dict_value VARCHAR(100) NOT NULL,
|
|
dict_type VARCHAR(100) NOT NULL,
|
|
css_class VARCHAR(100),
|
|
list_class VARCHAR(100),
|
|
is_default VARCHAR(1) DEFAULT 'N',
|
|
status VARCHAR(1) DEFAULT '0',
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create字典表(通用字典)
|
|
CREATE TABLE IF NOT EXISTS sys_dictionary (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
type VARCHAR(100) NOT NULL,
|
|
code VARCHAR(100) NOT NULL,
|
|
name VARCHAR(100) NOT NULL,
|
|
dict_value VARCHAR(500),
|
|
remark VARCHAR(500),
|
|
sort INTEGER DEFAULT 0,
|
|
create_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create系统配置表
|
|
CREATE TABLE IF NOT EXISTS sys_config (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
config_name VARCHAR(100) NOT NULL,
|
|
config_key VARCHAR(100) NOT NULL UNIQUE,
|
|
config_value VARCHAR(500) NOT NULL,
|
|
config_type VARCHAR(1) DEFAULT 'N',
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create登录日志表
|
|
CREATE TABLE IF NOT EXISTS sys_login_log (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(50),
|
|
ip VARCHAR(50),
|
|
location VARCHAR(255),
|
|
browser VARCHAR(50),
|
|
os VARCHAR(50),
|
|
status VARCHAR(1),
|
|
message VARCHAR(255),
|
|
login_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Create异常日志表
|
|
CREATE TABLE IF NOT EXISTS sys_exception_log (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(50),
|
|
title VARCHAR(100),
|
|
exception_name VARCHAR(100),
|
|
method_name VARCHAR(255),
|
|
method_params TEXT,
|
|
exception_msg TEXT,
|
|
exception_stack TEXT,
|
|
ip VARCHAR(50),
|
|
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Create操作日志表
|
|
CREATE TABLE IF NOT EXISTS operation_log (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(50),
|
|
operation VARCHAR(100),
|
|
method VARCHAR(200),
|
|
params TEXT,
|
|
result TEXT,
|
|
ip VARCHAR(50),
|
|
duration BIGINT,
|
|
status VARCHAR(1) DEFAULT '0',
|
|
error_msg TEXT,
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create系统公告表
|
|
CREATE TABLE IF NOT EXISTS sys_notice (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
notice_title VARCHAR(50) NOT NULL,
|
|
notice_type VARCHAR(1) NOT NULL,
|
|
notice_content TEXT,
|
|
status VARCHAR(1) DEFAULT '0',
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create用户消息表
|
|
CREATE TABLE IF NOT EXISTS sys_user_message (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
user_id BIGINT NOT NULL,
|
|
notice_id BIGINT,
|
|
message_title VARCHAR(255),
|
|
message_content TEXT,
|
|
is_read VARCHAR(1) DEFAULT '0',
|
|
read_time TIMESTAMP,
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create文件管理表
|
|
CREATE TABLE IF NOT EXISTS sys_file (
|
|
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
file_name VARCHAR(255) NOT NULL,
|
|
file_path VARCHAR(500) NOT NULL,
|
|
file_size BIGINT,
|
|
file_type VARCHAR(100),
|
|
file_extension VARCHAR(10),
|
|
storage_type VARCHAR(50),
|
|
create_by VARCHAR(50),
|
|
update_by VARCHAR(50),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
deleted_at TIMESTAMP
|
|
);
|
|
|
|
-- Create索引
|
|
CREATE INDEX IF NOT EXISTS idx_user_role_user_id ON user_role(user_id);
|
|
CREATE INDEX IF NOT EXISTS idx_user_role_role_id ON user_role(role_id);
|
|
CREATE INDEX IF NOT EXISTS idx_sys_menu_parent_id ON sys_menu(parent_id);
|
|
CREATE INDEX IF NOT EXISTS idx_sys_dict_type ON sys_dict_data(dict_type);
|
|
CREATE INDEX IF NOT EXISTS idx_sys_login_log_username ON sys_login_log(username);
|
|
CREATE INDEX IF NOT EXISTS idx_operation_log_username ON operation_log(username);
|