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:
root
2026-02-24 18:16:53 +08:00
parent 348885a51c
commit 423a04a610
@@ -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;