refactor: remove complex migration, keep simplified approach
- Remove 002_merge_old_data.sql (complex approach with temp tables) - Keep 003_import_feishu_config.sql (simplified data import) Follows principle: only import needed data, not full compatibility. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,134 +0,0 @@
|
||||
-- 合并旧项目数据到新项目
|
||||
-- 执行前请确保已备份数据库
|
||||
|
||||
-- 1. 更新 companies 表,添加飞书相关字段
|
||||
ALTER TABLE `companies`
|
||||
ADD COLUMN `abbr` varchar(50) NOT NULL DEFAULT '' COMMENT '公司缩写' AFTER `name`,
|
||||
ADD COLUMN `tenant_key` varchar(36) NOT NULL DEFAULT '' COMMENT '飞书企业标识' AFTER `abbr`,
|
||||
ADD COLUMN `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序' AFTER `tenant_key`,
|
||||
ADD COLUMN `feishu_enabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否启用飞书';
|
||||
|
||||
-- 2. 更新 users 表,添加飞书相关字段
|
||||
ALTER TABLE `users`
|
||||
ADD COLUMN `sn` varchar(36) NOT NULL DEFAULT '' COMMENT '用户编号' AFTER `id`,
|
||||
ADD COLUMN `report_to` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '上级用户ID' AFTER `sn`,
|
||||
ADD COLUMN `avatar` varchar(255) NULL DEFAULT NULL COMMENT '头像' AFTER `phone`,
|
||||
ADD COLUMN `sex` tinyint(2) NULL DEFAULT NULL COMMENT '性别:1:男,2:女' AFTER `avatar`,
|
||||
ADD COLUMN `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态' AFTER `sex`,
|
||||
ADD COLUMN `user_type` tinyint(2) NOT NULL DEFAULT 1 COMMENT '用户类型 1内部2外部' AFTER `status`,
|
||||
ADD COLUMN `union_id` varchar(60) NULL DEFAULT NULL COMMENT 'ISV的唯一标识' AFTER `user_type`,
|
||||
ADD COLUMN `feishu_user_id` varchar(60) NULL DEFAULT NULL COMMENT '飞书user_id' AFTER `union_id`,
|
||||
ADD COLUMN `feishu_open_id` varchar(60) NULL DEFAULT NULL COMMENT '飞书open_id' AFTER `feishu_user_id`,
|
||||
ADD COLUMN `tenant_key` varchar(60) NULL DEFAULT NULL COMMENT '当前企业标识' AFTER `feishu_open_id`,
|
||||
ADD COLUMN `position` varchar(128) NULL DEFAULT NULL COMMENT '职位' AFTER `tenant_key`,
|
||||
ADD COLUMN `sign_img` varchar(255) NULL DEFAULT NULL COMMENT '签名图片' AFTER `position`;
|
||||
|
||||
-- 3. 创建公司飞书应用配置表
|
||||
CREATE TABLE IF NOT EXISTS `company_feishu_apps` (
|
||||
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`company_id` int(11) NOT NULL DEFAULT 0 COMMENT '公司ID',
|
||||
`system_id` int(11) NOT NULL DEFAULT 0 COMMENT '系统ID:1=X-Server, 2=工单, 3=CRM_PC',
|
||||
`name` varchar(90) NOT NULL DEFAULT '' COMMENT '应用名称',
|
||||
`tenant_key` varchar(36) NOT NULL DEFAULT '' COMMENT '企业标识',
|
||||
`app_id` varchar(60) NOT NULL DEFAULT '' COMMENT '飞书应用ID',
|
||||
`app_secret` varchar(150) NOT NULL DEFAULT '' COMMENT '飞书应用密钥',
|
||||
`encrypt_key` varchar(60) NULL DEFAULT NULL COMMENT '事件加密密钥',
|
||||
`verification_token` varchar(60) NULL DEFAULT NULL COMMENT '事件验证令牌',
|
||||
`base_uri` varchar(255) NOT NULL DEFAULT 'https://open.feishu.cn/open-apis/' COMMENT '飞书API基础地址',
|
||||
`callback_url` varchar(255) NULL DEFAULT NULL COMMENT 'PC端回调地址',
|
||||
`mobile_callback_url` varchar(255) NULL DEFAULT NULL COMMENT '移动端回调地址',
|
||||
`scopes` text NULL COMMENT '授权范围',
|
||||
`state` varchar(255) NULL DEFAULT NULL COMMENT '携带参数',
|
||||
`sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
|
||||
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态:1启用,0禁用',
|
||||
`created_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`updated_at` int(11) NOT NULL DEFAULT 0 COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
KEY `idx_company_id` (`company_id`) USING BTREE,
|
||||
KEY `idx_system_id` (`system_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='公司飞书应用配置';
|
||||
|
||||
-- 4. 创建用户编号池表
|
||||
CREATE TABLE IF NOT EXISTS `user_sn_pool` (
|
||||
`sn` int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '用户编号',
|
||||
`user_id` bigint(20) UNSIGNED NULL DEFAULT NULL COMMENT '分配的用户ID',
|
||||
`status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态:0未分配,1已分配',
|
||||
`created_at` int(11) NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||
PRIMARY KEY (`sn`) USING BTREE,
|
||||
KEY `idx_user_id` (`user_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户编号池';
|
||||
|
||||
-- 5. 插入初始编号池数据(从100000到199999)
|
||||
INSERT IGNORE INTO `user_sn_pool` (`sn`, `status`, `created_at`)
|
||||
SELECT
|
||||
100000 + n.n AS sn,
|
||||
0 AS status,
|
||||
UNIX_TIMESTAMP() AS created_at
|
||||
FROM (
|
||||
SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION
|
||||
SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
|
||||
) t
|
||||
CROSS JOIN (
|
||||
SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION
|
||||
SELECT 5 UNION SELECT 6 UNION SELECT 7 UNION SELECT 8 UNION SELECT 9
|
||||
) t1
|
||||
CROSS JOIN (
|
||||
SELECT 0 AS n UNION SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4
|
||||
) t2;
|
||||
|
||||
-- 6. 创建迁移数据临时表(用于从旧数据迁移)
|
||||
CREATE TABLE IF NOT EXISTS `_migration_users` (
|
||||
`id` bigint(20) UNSIGNED NOT NULL,
|
||||
`sn` varchar(36) NOT NULL DEFAULT '',
|
||||
`report_to` bigint(20) UNSIGNED NULL DEFAULT 0,
|
||||
`name` varchar(60) NOT NULL DEFAULT '',
|
||||
`avatar` varchar(255) NULL DEFAULT NULL,
|
||||
`sex` tinyint(2) NULL DEFAULT NULL,
|
||||
`password` varchar(255) NOT NULL DEFAULT '',
|
||||
`phone` varchar(22) NOT NULL DEFAULT '',
|
||||
`email` varchar(90) NOT NULL DEFAULT '',
|
||||
`corp_id` int(11) NOT NULL DEFAULT 0,
|
||||
`status` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`user_type` tinyint(2) NOT NULL DEFAULT 1,
|
||||
`union_id` varchar(60) NULL DEFAULT NULL,
|
||||
`user_id` varchar(60) NULL DEFAULT NULL,
|
||||
`open_id` varchar(60) NULL DEFAULT NULL,
|
||||
`tenant_key` varchar(60) NULL DEFAULT NULL,
|
||||
`position` varchar(128) NULL DEFAULT NULL,
|
||||
`sign_img` varchar(255) NULL DEFAULT NULL,
|
||||
`created_at` int(11) NOT NULL DEFAULT 0,
|
||||
`updated_at` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `_migration_corp` (
|
||||
`id` int(11) UNSIGNED NOT NULL,
|
||||
`name` varchar(255) NOT NULL DEFAULT '',
|
||||
`abbr` enum('hesu','xinyouhe','paika','simate','mbaf') NOT NULL DEFAULT 'hesu',
|
||||
`tenant_key` varchar(36) NOT NULL DEFAULT '',
|
||||
`sort` int(11) NOT NULL DEFAULT 0,
|
||||
`status` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`created_at` int(11) NOT NULL DEFAULT 0,
|
||||
`updated_at` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `_migration_corp_feishu_app` (
|
||||
`id` int(11) UNSIGNED NOT NULL,
|
||||
`corp_id` int(11) NOT NULL DEFAULT 0,
|
||||
`system_id` int(11) NOT NULL DEFAULT 0,
|
||||
`name` varchar(90) NOT NULL DEFAULT '',
|
||||
`tenant_key` varchar(36) NOT NULL DEFAULT '',
|
||||
`app_id` varchar(60) NOT NULL DEFAULT '',
|
||||
`app_secret` varchar(150) NOT NULL DEFAULT '',
|
||||
`base_uri` varchar(255) NOT NULL DEFAULT '',
|
||||
`r_url` varchar(255) NULL DEFAULT NULL,
|
||||
`m_url` varchar(255) NULL DEFAULT '',
|
||||
`scopes` text NULL,
|
||||
`state` varchar(255) NULL DEFAULT NULL,
|
||||
`sort` int(11) NOT NULL DEFAULT 0,
|
||||
`status` tinyint(1) NOT NULL DEFAULT 1,
|
||||
`created_at` int(11) NOT NULL DEFAULT 0,
|
||||
`updated_at` int(11) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
Reference in New Issue
Block a user