2026-10-10 21:13:35 +08:00

248 lines
8.8 KiB
SQL

-- CreateTable
CREATE TABLE `sys_tenant` (
`id` VARCHAR(36) NOT NULL,
`code` VARCHAR(64) NOT NULL,
`name` VARCHAR(128) NOT NULL,
`status` VARCHAR(16) NOT NULL DEFAULT 'enabled',
`remark` VARCHAR(255) NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
UNIQUE INDEX `sys_tenant_code_key`(`code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_user` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`username` VARCHAR(64) NOT NULL,
`password_hash` VARCHAR(255) NOT NULL,
`nickname` VARCHAR(64) NULL,
`email` VARCHAR(128) NULL,
`phone` VARCHAR(32) NULL,
`avatar` VARCHAR(255) NULL,
`status` VARCHAR(16) NOT NULL DEFAULT 'enabled',
`org_code` VARCHAR(64) NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
INDEX `sys_user_tenant_code_idx`(`tenant_code`),
INDEX `sys_user_org_code_idx`(`org_code`),
UNIQUE INDEX `sys_user_tenant_code_username_key`(`tenant_code`, `username`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_role` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`code` VARCHAR(64) NOT NULL,
`name` VARCHAR(64) NOT NULL,
`data_scope` VARCHAR(16) NOT NULL DEFAULT 'all',
`status` VARCHAR(16) NOT NULL DEFAULT 'enabled',
`remark` VARCHAR(255) NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
INDEX `sys_role_tenant_code_idx`(`tenant_code`),
UNIQUE INDEX `sys_role_tenant_code_code_key`(`tenant_code`, `code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_resource` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`parent_code` VARCHAR(64) NULL,
`type` VARCHAR(16) NOT NULL,
`code` VARCHAR(128) NOT NULL,
`name` VARCHAR(64) NOT NULL,
`path` VARCHAR(255) NULL,
`component` VARCHAR(255) NULL,
`method` VARCHAR(8) NULL,
`api_path` VARCHAR(255) NULL,
`icon` VARCHAR(64) NULL,
`sort` INTEGER NOT NULL DEFAULT 0,
`status` VARCHAR(16) NOT NULL DEFAULT 'enabled',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
INDEX `sys_resource_tenant_code_idx`(`tenant_code`),
INDEX `sys_resource_parent_code_idx`(`parent_code`),
UNIQUE INDEX `sys_resource_tenant_code_code_key`(`tenant_code`, `code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_org` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`parent_code` VARCHAR(64) NULL,
`code` VARCHAR(64) NOT NULL,
`name` VARCHAR(64) NOT NULL,
`leader` VARCHAR(64) NULL,
`sort` INTEGER NOT NULL DEFAULT 0,
`status` VARCHAR(16) NOT NULL DEFAULT 'enabled',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
INDEX `sys_org_tenant_code_idx`(`tenant_code`),
INDEX `sys_org_parent_code_idx`(`parent_code`),
UNIQUE INDEX `sys_org_tenant_code_code_key`(`tenant_code`, `code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_dict_type` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`code` VARCHAR(64) NOT NULL,
`name` VARCHAR(64) NOT NULL,
`status` VARCHAR(16) NOT NULL DEFAULT 'enabled',
`remark` VARCHAR(255) NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
INDEX `sys_dict_type_tenant_code_idx`(`tenant_code`),
UNIQUE INDEX `sys_dict_type_tenant_code_code_key`(`tenant_code`, `code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_dict_item` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`dict_type_code` VARCHAR(64) NOT NULL,
`label` VARCHAR(64) NOT NULL,
`value` VARCHAR(64) NOT NULL,
`sort` INTEGER NOT NULL DEFAULT 0,
`status` VARCHAR(16) NOT NULL DEFAULT 'enabled',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
INDEX `sys_dict_item_tenant_code_dict_type_code_idx`(`tenant_code`, `dict_type_code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_config` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`key` VARCHAR(128) NOT NULL,
`value` TEXT NULL,
`remark` VARCHAR(255) NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`created_by` VARCHAR(36) NULL,
`updated_at` DATETIME(3) NOT NULL,
`deleted_at` DATETIME(3) NULL,
UNIQUE INDEX `sys_config_tenant_code_key_key`(`tenant_code`, `key`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_audit_log` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`user_id` VARCHAR(36) NULL,
`username` VARCHAR(64) NULL,
`module` VARCHAR(64) NULL,
`action` VARCHAR(64) NULL,
`method` VARCHAR(8) NULL,
`path` VARCHAR(255) NULL,
`params` TEXT NULL,
`result` TEXT NULL,
`status` VARCHAR(16) NULL,
`error_message` TEXT NULL,
`ip` VARCHAR(64) NULL,
`user_agent` VARCHAR(255) NULL,
`duration_ms` INTEGER NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
INDEX `sys_audit_log_tenant_code_created_at_idx`(`tenant_code`, `created_at`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_login_log` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`username` VARCHAR(64) NULL,
`ip` VARCHAR(64) NULL,
`user_agent` VARCHAR(255) NULL,
`status` VARCHAR(16) NOT NULL DEFAULT 'success',
`message` VARCHAR(255) NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
INDEX `sys_login_log_tenant_code_created_at_idx`(`tenant_code`, `created_at`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_refresh_token` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`user_id` VARCHAR(36) NOT NULL,
`jti` VARCHAR(64) NOT NULL,
`token_hash` VARCHAR(255) NOT NULL,
`ip` VARCHAR(64) NULL,
`user_agent` VARCHAR(255) NULL,
`login_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`expire_at` DATETIME(3) NOT NULL,
`revoked_at` DATETIME(3) NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
UNIQUE INDEX `sys_refresh_token_jti_key`(`jti`),
INDEX `sys_refresh_token_tenant_code_user_id_idx`(`tenant_code`, `user_id`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_user_role` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`user_id` VARCHAR(36) NOT NULL,
`role_code` VARCHAR(64) NOT NULL,
INDEX `sys_user_role_tenant_code_user_id_idx`(`tenant_code`, `user_id`),
UNIQUE INDEX `sys_user_role_tenant_code_user_id_role_code_key`(`tenant_code`, `user_id`, `role_code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_role_resource` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`role_code` VARCHAR(64) NOT NULL,
`resource_code` VARCHAR(128) NOT NULL,
INDEX `sys_role_resource_tenant_code_role_code_idx`(`tenant_code`, `role_code`),
UNIQUE INDEX `sys_role_resource_tenant_code_role_code_resource_code_key`(`tenant_code`, `role_code`, `resource_code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- CreateTable
CREATE TABLE `sys_role_org` (
`id` VARCHAR(36) NOT NULL,
`tenant_code` VARCHAR(64) NOT NULL,
`role_code` VARCHAR(64) NOT NULL,
`org_code` VARCHAR(64) NOT NULL,
UNIQUE INDEX `sys_role_org_tenant_code_role_code_org_code_key`(`tenant_code`, `role_code`, `org_code`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;