293 lines
12 KiB
SQL
293 lines
12 KiB
SQL
-- Current sql file was generated after introspecting the database
|
|
-- If you want to run this migration please uncomment this code before executing migrations
|
|
/*
|
|
CREATE TABLE `sys_dict_items` (
|
|
`id` bigint NOT NULL,
|
|
`type_id` bigint NOT NULL,
|
|
`item_key` varchar(50) NOT NULL,
|
|
`item_value` varchar(200) NOT NULL,
|
|
`label` varchar(100) NOT NULL,
|
|
`label_en` varchar(200),
|
|
`description` text,
|
|
`pid` bigint DEFAULT 0,
|
|
`path` varchar(500),
|
|
`level` int NOT NULL DEFAULT 1,
|
|
`sort_order` int NOT NULL DEFAULT 0,
|
|
`status` varchar(20) NOT NULL DEFAULT 'active',
|
|
`css_class` varchar(50),
|
|
`color` varchar(50),
|
|
`extra` json,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`updated_by` bigint,
|
|
`updated_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`deleted_at` datetime,
|
|
CONSTRAINT `sys_dict_items_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_type_key` UNIQUE(`type_id`,`item_key`,`deleted_at`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_dict_types` (
|
|
`id` bigint NOT NULL,
|
|
`code` varchar(50) NOT NULL,
|
|
`name` varchar(100) NOT NULL,
|
|
`description` text,
|
|
`pid` bigint DEFAULT 0,
|
|
`path` varchar(500),
|
|
`level` int NOT NULL DEFAULT 1,
|
|
`status` varchar(20) NOT NULL DEFAULT 'active',
|
|
`is_system` tinyint(1) NOT NULL DEFAULT 0,
|
|
`sort_order` int NOT NULL DEFAULT 0,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`updated_by` bigint,
|
|
`updated_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`deleted_at` datetime,
|
|
CONSTRAINT `sys_dict_types_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_code` UNIQUE(`code`,`deleted_at`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_operation_logs` (
|
|
`id` bigint NOT NULL,
|
|
`user_id` bigint,
|
|
`username` varchar(100),
|
|
`module` varchar(50) NOT NULL,
|
|
`action` varchar(50) NOT NULL,
|
|
`target` varchar(200),
|
|
`target_id` bigint,
|
|
`request_data` text,
|
|
`response_data` text,
|
|
`status` varchar(20) NOT NULL,
|
|
`ip` varchar(45),
|
|
`user_agent` varchar(200),
|
|
`duration` bigint,
|
|
`error_msg` text,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
CONSTRAINT `sys_operation_logs_id` PRIMARY KEY(`id`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_organizations` (
|
|
`id` bigint NOT NULL,
|
|
`code` varchar(100) NOT NULL,
|
|
`name` varchar(200) NOT NULL,
|
|
`full_name` varchar(200),
|
|
`description` text,
|
|
`pid` bigint DEFAULT 0,
|
|
`path` varchar(500),
|
|
`level` int NOT NULL DEFAULT 1,
|
|
`type` varchar(20),
|
|
`status` varchar(20) NOT NULL DEFAULT 'active',
|
|
`sort_order` int NOT NULL DEFAULT 0,
|
|
`leader_id` bigint,
|
|
`address` varchar(200),
|
|
`phone` varchar(50),
|
|
`extra` json,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`updated_by` bigint,
|
|
`updated_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`deleted_at` datetime,
|
|
`version` int NOT NULL DEFAULT 1,
|
|
CONSTRAINT `sys_organizations_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_code` UNIQUE(`code`,`deleted_at`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_permissions` (
|
|
`id` bigint NOT NULL,
|
|
`code` varchar(100) NOT NULL,
|
|
`name` varchar(100) NOT NULL,
|
|
`type` varchar(20) NOT NULL,
|
|
`resource` varchar(50),
|
|
`action` varchar(50),
|
|
`description` text,
|
|
`pid` bigint DEFAULT 0,
|
|
`path` varchar(500),
|
|
`level` int NOT NULL DEFAULT 1,
|
|
`sort_order` int NOT NULL DEFAULT 0,
|
|
`status` varchar(20) NOT NULL DEFAULT 'active',
|
|
`meta` json,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`updated_by` bigint,
|
|
`updated_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`deleted_at` datetime,
|
|
CONSTRAINT `sys_permissions_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_code` UNIQUE(`code`,`deleted_at`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_role_permissions` (
|
|
`id` bigint NOT NULL,
|
|
`role_id` bigint NOT NULL,
|
|
`permission_id` bigint NOT NULL,
|
|
`is_half` tinyint(1) NOT NULL DEFAULT 0,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
CONSTRAINT `sys_role_permissions_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_role_permission` UNIQUE(`role_id`,`permission_id`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_roles` (
|
|
`id` bigint NOT NULL,
|
|
`code` varchar(50) NOT NULL,
|
|
`name` varchar(100) NOT NULL,
|
|
`description` text,
|
|
`pid` bigint DEFAULT 0,
|
|
`path` varchar(500),
|
|
`level` int NOT NULL DEFAULT 1,
|
|
`sort_order` int NOT NULL DEFAULT 0,
|
|
`status` varchar(20) NOT NULL DEFAULT 'active',
|
|
`is_system` tinyint(1) NOT NULL DEFAULT 0,
|
|
`permissions_snapshot` json,
|
|
`extra` json,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`updated_by` bigint,
|
|
`updated_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`deleted_at` datetime,
|
|
`version` int NOT NULL DEFAULT 1,
|
|
CONSTRAINT `sys_roles_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_code` UNIQUE(`code`,`deleted_at`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_tags` (
|
|
`id` bigint NOT NULL,
|
|
`name` varchar(50) NOT NULL,
|
|
`type` varchar(50) DEFAULT 'user',
|
|
`color` varchar(50),
|
|
`description` text,
|
|
`usage_count` int NOT NULL DEFAULT 0,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`deleted_at` datetime,
|
|
CONSTRAINT `sys_tags_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_name_type` UNIQUE(`name`,`type`,`deleted_at`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_user_organizations` (
|
|
`id` bigint NOT NULL,
|
|
`user_id` bigint NOT NULL,
|
|
`organization_id` bigint NOT NULL,
|
|
`is_primary` tinyint(1) NOT NULL DEFAULT 0,
|
|
`position` varchar(100),
|
|
`joined_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
CONSTRAINT `sys_user_organizations_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_user_org` UNIQUE(`user_id`,`organization_id`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_user_roles` (
|
|
`id` bigint NOT NULL,
|
|
`user_id` bigint NOT NULL,
|
|
`role_id` bigint NOT NULL,
|
|
`expired_at` datetime,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
CONSTRAINT `sys_user_roles_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_user_role` UNIQUE(`user_id`,`role_id`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_user_tags` (
|
|
`id` bigint NOT NULL,
|
|
`user_id` bigint NOT NULL,
|
|
`tag_id` bigint NOT NULL,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
CONSTRAINT `sys_user_tags_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_user_tag` UNIQUE(`user_id`,`tag_id`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE TABLE `sys_users` (
|
|
`id` bigint NOT NULL,
|
|
`username` varchar(50) NOT NULL,
|
|
`email` varchar(100) NOT NULL,
|
|
`mobile` varchar(20),
|
|
`password_hash` varchar(255) NOT NULL,
|
|
`avatar` varchar(255),
|
|
`nickname` varchar(100),
|
|
`status` varchar(20) NOT NULL DEFAULT 'active',
|
|
`gender` tinyint DEFAULT 0,
|
|
`birthday` date,
|
|
`bio` varchar(500),
|
|
`login_count` int NOT NULL DEFAULT 0,
|
|
`last_login_at` datetime,
|
|
`last_login_ip` varchar(45),
|
|
`failed_attempts` int NOT NULL DEFAULT 0,
|
|
`locked_until` datetime,
|
|
`is_root` tinyint(1) NOT NULL DEFAULT 0,
|
|
`extra` json,
|
|
`created_by` bigint,
|
|
`created_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`updated_by` bigint,
|
|
`updated_at` datetime NOT NULL DEFAULT (CURRENT_TIMESTAMP),
|
|
`deleted_at` datetime,
|
|
`version` int NOT NULL DEFAULT 1,
|
|
CONSTRAINT `sys_users_id` PRIMARY KEY(`id`),
|
|
CONSTRAINT `uk_email` UNIQUE(`email`,`deleted_at`),
|
|
CONSTRAINT `uk_username` UNIQUE(`username`,`deleted_at`)
|
|
);
|
|
--> statement-breakpoint
|
|
CREATE INDEX `idx_deleted_at` ON `sys_dict_items` (`deleted_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_key` ON `sys_dict_items` (`item_key`);--> statement-breakpoint
|
|
CREATE INDEX `idx_pid` ON `sys_dict_items` (`pid`);--> statement-breakpoint
|
|
CREATE INDEX `idx_sort` ON `sys_dict_items` (`type_id`,`sort_order`);--> statement-breakpoint
|
|
CREATE INDEX `idx_status` ON `sys_dict_items` (`status`);--> statement-breakpoint
|
|
CREATE INDEX `idx_type_id` ON `sys_dict_items` (`type_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_deleted_at` ON `sys_dict_types` (`deleted_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_is_system` ON `sys_dict_types` (`is_system`);--> statement-breakpoint
|
|
CREATE INDEX `idx_name` ON `sys_dict_types` (`name`);--> statement-breakpoint
|
|
CREATE INDEX `idx_path` ON `sys_dict_types` (`path`);--> statement-breakpoint
|
|
CREATE INDEX `idx_pid` ON `sys_dict_types` (`pid`);--> statement-breakpoint
|
|
CREATE INDEX `idx_sort` ON `sys_dict_types` (`pid`,`sort_order`);--> statement-breakpoint
|
|
CREATE INDEX `idx_status` ON `sys_dict_types` (`status`);--> statement-breakpoint
|
|
CREATE INDEX `idx_created_at` ON `sys_operation_logs` (`created_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_ip` ON `sys_operation_logs` (`ip`);--> statement-breakpoint
|
|
CREATE INDEX `idx_module_action` ON `sys_operation_logs` (`module`,`action`);--> statement-breakpoint
|
|
CREATE INDEX `idx_status` ON `sys_operation_logs` (`status`);--> statement-breakpoint
|
|
CREATE INDEX `idx_target` ON `sys_operation_logs` (`target_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_user_id` ON `sys_operation_logs` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_deleted_at` ON `sys_organizations` (`deleted_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_leader_id` ON `sys_organizations` (`leader_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_name` ON `sys_organizations` (`name`);--> statement-breakpoint
|
|
CREATE INDEX `idx_path` ON `sys_organizations` (`path`);--> statement-breakpoint
|
|
CREATE INDEX `idx_pid` ON `sys_organizations` (`pid`);--> statement-breakpoint
|
|
CREATE INDEX `idx_sort` ON `sys_organizations` (`pid`,`sort_order`);--> statement-breakpoint
|
|
CREATE INDEX `idx_status` ON `sys_organizations` (`status`);--> statement-breakpoint
|
|
CREATE INDEX `idx_type` ON `sys_organizations` (`type`);--> statement-breakpoint
|
|
CREATE INDEX `idx_deleted_at` ON `sys_permissions` (`deleted_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_pid` ON `sys_permissions` (`pid`);--> statement-breakpoint
|
|
CREATE INDEX `idx_resource_action` ON `sys_permissions` (`resource`,`action`);--> statement-breakpoint
|
|
CREATE INDEX `idx_sort` ON `sys_permissions` (`pid`,`sort_order`);--> statement-breakpoint
|
|
CREATE INDEX `idx_status` ON `sys_permissions` (`status`);--> statement-breakpoint
|
|
CREATE INDEX `idx_type` ON `sys_permissions` (`type`);--> statement-breakpoint
|
|
CREATE INDEX `idx_is_half` ON `sys_role_permissions` (`is_half`);--> statement-breakpoint
|
|
CREATE INDEX `idx_permission_id` ON `sys_role_permissions` (`permission_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_role_id` ON `sys_role_permissions` (`role_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_deleted_at` ON `sys_roles` (`deleted_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_is_system` ON `sys_roles` (`is_system`);--> statement-breakpoint
|
|
CREATE INDEX `idx_name` ON `sys_roles` (`name`);--> statement-breakpoint
|
|
CREATE INDEX `idx_path` ON `sys_roles` (`path`);--> statement-breakpoint
|
|
CREATE INDEX `idx_pid` ON `sys_roles` (`pid`);--> statement-breakpoint
|
|
CREATE INDEX `idx_sort` ON `sys_roles` (`pid`,`sort_order`);--> statement-breakpoint
|
|
CREATE INDEX `idx_status` ON `sys_roles` (`status`);--> statement-breakpoint
|
|
CREATE INDEX `idx_deleted_at` ON `sys_tags` (`deleted_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_name` ON `sys_tags` (`name`);--> statement-breakpoint
|
|
CREATE INDEX `idx_type` ON `sys_tags` (`type`);--> statement-breakpoint
|
|
CREATE INDEX `idx_usage_count` ON `sys_tags` (`usage_count`);--> statement-breakpoint
|
|
CREATE INDEX `idx_is_primary` ON `sys_user_organizations` (`is_primary`);--> statement-breakpoint
|
|
CREATE INDEX `idx_joined_at` ON `sys_user_organizations` (`joined_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_organization_id` ON `sys_user_organizations` (`organization_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_user_id` ON `sys_user_organizations` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_created_at` ON `sys_user_roles` (`created_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_expired_at` ON `sys_user_roles` (`expired_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_role_id` ON `sys_user_roles` (`role_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_user_id` ON `sys_user_roles` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_created_at` ON `sys_user_tags` (`created_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_tag_id` ON `sys_user_tags` (`tag_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_user_id` ON `sys_user_tags` (`user_id`);--> statement-breakpoint
|
|
CREATE INDEX `idx_created_at` ON `sys_users` (`created_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_deleted_at` ON `sys_users` (`deleted_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_is_root` ON `sys_users` (`is_root`);--> statement-breakpoint
|
|
CREATE INDEX `idx_last_login` ON `sys_users` (`last_login_at`);--> statement-breakpoint
|
|
CREATE INDEX `idx_mobile` ON `sys_users` (`mobile`);--> statement-breakpoint
|
|
CREATE INDEX `idx_status` ON `sys_users` (`status`);
|
|
*/ |