126 lines
6.5 KiB
SQL
126 lines
6.5 KiB
SQL
-- =============================================
|
|
-- 租户相关数据库变更脚本
|
|
-- 用于若依框架 SAAS 化迁移
|
|
-- =============================================
|
|
|
|
-- ----------------------------
|
|
-- 1. 创建租户表
|
|
-- ----------------------------
|
|
DROP TABLE IF EXISTS `sys_tenant`;
|
|
CREATE TABLE `sys_tenant` (
|
|
`tenant_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '租户ID',
|
|
`tenant_code` varchar(50) NOT NULL COMMENT '租户编码(唯一)',
|
|
`tenant_name` varchar(100) NOT NULL COMMENT '租户名称',
|
|
`tenant_type` varchar(20) NOT NULL DEFAULT 'COMPANY' COMMENT '租户类型: COMPANY-企业',
|
|
`company_type` varchar(20) NULL COMMENT '公司类型: BANK-银行, CLIENT-甲方, LABOR-劳务公司',
|
|
`contact_person` varchar(50) NULL COMMENT '联系人',
|
|
`contact_phone` varchar(20) NULL COMMENT '联系电话',
|
|
`contact_email` varchar(100) NULL COMMENT '联系邮箱',
|
|
`domain` varchar(100) NULL COMMENT '租户域名',
|
|
`logo_url` varchar(500) NULL COMMENT 'Logo URL',
|
|
`status` varchar(10) NOT NULL DEFAULT 'ACTIVE' COMMENT '状态: ACTIVE-正常, FROZEN-冻结, DELETED-已删除',
|
|
`max_users` int(11) NULL DEFAULT 10 COMMENT '最大用户数',
|
|
`max_companies` int(11) NULL DEFAULT 5 COMMENT '最大公司数',
|
|
`expire_date` date NULL COMMENT '过期日期',
|
|
`package_id` bigint(20) NULL COMMENT '套餐ID',
|
|
`create_by` varchar(64) NULL DEFAULT '' COMMENT '创建者',
|
|
`create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_by` varchar(64) NULL DEFAULT '' COMMENT '更新者',
|
|
`update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
`remark` varchar(500) NULL COMMENT '备注',
|
|
PRIMARY KEY (`tenant_id`),
|
|
UNIQUE INDEX `uk_tenant_code`(`tenant_code` ASC),
|
|
INDEX `idx_status`(`status` ASC),
|
|
INDEX `idx_company_type`(`company_type` ASC)
|
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='租户表';
|
|
|
|
-- ----------------------------
|
|
-- 2. 初始化默认租户 (兼容现有数据)
|
|
-- ----------------------------
|
|
INSERT INTO `sys_tenant` (`tenant_id`, `tenant_code`, `tenant_name`, `tenant_type`, `company_type`, `status`, `max_users`, `max_companies`, `remark`)
|
|
VALUES (1, 'DEFAULT', '默认租户', 'COMPANY', NULL, 'ACTIVE', 1000, 100, '系统默认租户,兼容历史数据');
|
|
|
|
-- ----------------------------
|
|
-- 3. 为 sys_user 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `sys_user` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `del_flag`;
|
|
ALTER TABLE `sys_user` ADD INDEX `idx_user_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 4. 为 sys_dept 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `sys_dept` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `dept_id`;
|
|
ALTER TABLE `sys_dept` ADD INDEX `idx_dept_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 5. 为 dc_contract 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_contract` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `contract_id`;
|
|
ALTER TABLE `dc_contract` ADD INDEX `idx_contract_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 6. 为 dc_service_contract 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_service_contract` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `service_contract_id`;
|
|
ALTER TABLE `dc_service_contract` ADD INDEX `idx_service_contract_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 7. 为 dc_employee_info 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_employee_info` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `employee_id`;
|
|
ALTER TABLE `dc_employee_info` ADD INDEX `idx_employee_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 8. 为 dc_employee_library 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_employee_library` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `library_id`;
|
|
ALTER TABLE `dc_employee_library` ADD INDEX `idx_library_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 9. 为 dc_credit 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_credit` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `credit_id`;
|
|
ALTER TABLE `dc_credit` ADD INDEX `idx_credit_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 10. 为 dc_financing 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_financing` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `financing_id`;
|
|
ALTER TABLE `dc_financing` ADD INDEX `idx_financing_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 11. 为 dc_company_relationship 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_company_relationship` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `relationship_id`;
|
|
ALTER TABLE `dc_company_relationship` ADD INDEX `idx_relationship_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 12. 为 dc_bank_institution 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_bank_institution` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `bank_id`;
|
|
ALTER TABLE `dc_bank_institution` ADD INDEX `idx_bank_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 13. 为 dc_service_period 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_service_period` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `service_period_id`;
|
|
ALTER TABLE `dc_service_period` ADD INDEX `idx_service_period_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 14. 为 dc_service_period_loan 表添加 tenant_id 字段
|
|
-- ----------------------------
|
|
ALTER TABLE `dc_service_period_loan` ADD COLUMN `tenant_id` bigint(20) NULL DEFAULT 1 COMMENT '租户ID' AFTER `link_id`;
|
|
ALTER TABLE `dc_service_period_loan` ADD INDEX `idx_loan_tenant_id`(`tenant_id` ASC);
|
|
|
|
-- ----------------------------
|
|
-- 15. 更新现有数据的 tenant_id (根据 company_id 关联)
|
|
-- ----------------------------
|
|
-- 注意:此脚本需要在确认现有公司数据后再执行
|
|
-- 以下为示例逻辑,实际执行时需要根据具体业务逻辑调整
|
|
|
|
-- 更新用户的 tenant_id 为 1 (默认租户)
|
|
UPDATE sys_user SET tenant_id = 1 WHERE tenant_id IS NULL;
|
|
|
|
-- 更新部门的 tenant_id 为 1 (默认租户)
|
|
UPDATE sys_dept SET tenant_id = 1 WHERE tenant_id IS NULL;
|