fix: add UTF-8 encoding fix migration
- Add 006_fix_encoding_utf8.sql migration script - Properly sets UTF-8 charset for table creation - Recreates companies and users tables with correct Chinese comments - Imports company data with correct UTF-8 encoding Usage: docker exec -i 1Panel-mysql-409s mysql -uroot -p'mysql_xEsdPa' --default-character-set=utf8mb4 x_server_mobile < 006_fix_encoding_utf8.sql Fixes encoding issues where Chinese text appears as garbled characters due to MySQL client using latin1 charset instead of utf8mb4. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
-- UTF-8 编码修复脚本
|
||||
-- 使用方法:
|
||||
-- docker exec -i 1Panel-mysql-409s mysql -uroot -p'mysql_xEsdPa' --default-character-set=utf8mb4 x_server_mobile < 006_fix_encoding_utf8.sql
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
SET CHARACTER SET utf8mb4;
|
||||
SET character_set_client = utf8mb4;
|
||||
SET character_set_connection = utf8mb4;
|
||||
SET character_set_results = utf8mb4;
|
||||
|
||||
USE x_server_mobile;
|
||||
|
||||
-- 重新创建 companies 表(带正确的中文注释)
|
||||
DROP TABLE IF EXISTS companies;
|
||||
CREATE TABLE `companies` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '公司ID',
|
||||
`name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '公司名称',
|
||||
`abbr` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '公司缩写',
|
||||
`tenant_key` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '飞书企业标识',
|
||||
`sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
|
||||
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1=启用,0=禁用',
|
||||
`feishu_enabled` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否启用飞书',
|
||||
`feishu_app_id` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '飞书应用ID(已弃用,使用company_feishu_apps表)',
|
||||
`feishu_app_secret` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '飞书应用密钥(已弃用)',
|
||||
`feishu_tenant_key` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '飞书租户Key(已弃用)',
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_feishu_app_id` (`feishu_app_id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='公司表';
|
||||
|
||||
-- 重新创建 users 表(带正确的中文注释)
|
||||
DROP TABLE IF EXISTS users;
|
||||
CREATE TABLE `users` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||||
`sn` varchar(36) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户编号',
|
||||
`company_id` bigint unsigned NOT NULL COMMENT '所属公司ID',
|
||||
`report_to` bigint(20) UNSIGNED NULL DEFAULT 0 COMMENT '上级用户ID',
|
||||
`name` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
|
||||
`avatar` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '头像URL',
|
||||
`sex` tinyint(2) NULL DEFAULT NULL COMMENT '性别:1=男,2=女',
|
||||
`email` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '邮箱',
|
||||
`phone` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '手机号',
|
||||
`password` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '密码',
|
||||
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1=正常,0=禁用',
|
||||
`user_type` tinyint(2) NOT NULL DEFAULT 1 COMMENT '用户类型:1=内部,2=外部',
|
||||
`union_id` varchar(60) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '飞书UnionID(跨应用唯一)',
|
||||
`feishu_user_id` varchar(60) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '飞书用户ID',
|
||||
`feishu_open_id` varchar(60) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '飞书OpenID',
|
||||
`tenant_key` varchar(60) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '当前企业标识',
|
||||
`position` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '职位',
|
||||
`sign_img` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '签名图片',
|
||||
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_company_id` (`company_id`),
|
||||
KEY `idx_feishu_user_id` (`feishu_user_id`),
|
||||
KEY `idx_feishu_union_id` (`union_id`),
|
||||
KEY `idx_status` (`status`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||||
|
||||
-- 重新创建 company_feishu_apps 表
|
||||
DROP TABLE IF EXISTS company_feishu_apps;
|
||||
CREATE TABLE `company_feishu_apps` (
|
||||
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID',
|
||||
`company_id` int(11) NOT NULL COMMENT '公司ID',
|
||||
`system_id` int(11) NOT NULL DEFAULT 1 COMMENT '系统ID:1=X-Server',
|
||||
`name` varchar(90) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '应用名称',
|
||||
`app_id` varchar(60) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '飞书应用ID',
|
||||
`app_secret` varchar(150) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '飞书应用密钥',
|
||||
`encrypt_key` varchar(60) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '事件加密密钥',
|
||||
`verification_token` varchar(60) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '事件验证令牌',
|
||||
`callback_url` varchar(255) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT 'PC端回调地址',
|
||||
`mobile_callback_url` varchar(255) COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL 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='公司飞书应用配置表';
|
||||
|
||||
-- 导入公司数据
|
||||
INSERT INTO `companies` (name, abbr, tenant_key, status, sort, feishu_enabled) VALUES
|
||||
('合塑', 'hesu', '10edab4d5d85175f', 1, 1, 1),
|
||||
('新友合', 'xinyouhe', '14e7bc0fe5985740', 1, 2, 1),
|
||||
('派卡', 'paika', '14e5377859d71740', 1, 3, 1),
|
||||
('斯玛特', 'simate', '', 0, 4, 0),
|
||||
('magic bridge Auto', 'mbaf', '', 1, 5, 0);
|
||||
|
||||
-- 导入飞书应用配置
|
||||
INSERT INTO `company_feishu_apps` (company_id, system_id, name, app_id, app_secret, callback_url, mobile_callback_url, status, created_at, updated_at) VALUES
|
||||
(2, 1, 'X-Server', 'cli_a73e1e6406fa501c', '9cMfxujjGG9JPmNfNcOwUdCoIXqaM1wY', 'https://x.hnxinyouhe.com/auth/feishu-callback', 'https://mweb-fdesk.hnxinyouhe.com/login/feishu-callback', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(3, 1, 'X-Server', 'cli_a73e8253144f500b', 'MpLqRmfWx8iA8vwWj5IO6elvIKAHU8E6', 'https://x.hnxinyouhe.com/auth/feishu-callback', 'https://mweb-fdesk.hnxinyouhe.com/login/feishu-callback', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()),
|
||||
(1, 1, 'X-Server', 'cli_a6183b882cb8500d', 'VqYib48u4EtDIa6nG9qH3f0fYCA1bCvs', 'https://x.hnxinyouhe.com/auth/feishu-callback', 'https://mweb-fdesk.hnxinyouhe.com/login/feishu-callback', 1, UNIX_TIMESTAMP(), UNIX_TIMESTAMP());
|
||||
|
||||
-- 验证结果
|
||||
SELECT '=== companies表 ===' as '';
|
||||
SELECT id, name, abbr, tenant_key FROM companies ORDER BY id;
|
||||
|
||||
SELECT '=== company_feishu_apps表 ===' as '';
|
||||
SELECT id, company_id, name, app_id FROM company_feishu_apps ORDER BY id;
|
||||
|
||||
SELECT '=== 完成!===' as '';
|
||||
SELECT COUNT(*) as company_count FROM companies;
|
||||
SELECT COUNT(*) as feishu_app_count FROM company_feishu_apps;
|
||||
Reference in New Issue
Block a user