#!/bin/bash # 关注功能修复脚本 # 用途:创建 eb_follow_record 表并迁移数据 echo "==========================================" echo "关注功能修复脚本" echo "==========================================" echo "" # 数据库配置 DB_HOST="1.15.149.240" DB_USER="root" DB_NAME="crmeb" echo "请输入MySQL密码:" read -s DB_PASS echo "" echo "正在连接数据库..." # 执行SQL mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME << 'EOF' -- 创建 eb_follow_record 表 CREATE TABLE IF NOT EXISTS `eb_follow_record` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `follower_id` int(11) NOT NULL COMMENT '关注者用户ID', `follower_nickname` varchar(50) DEFAULT NULL COMMENT '关注者昵称', `follower_phone` varchar(20) DEFAULT NULL COMMENT '关注者手机号', `followed_id` int(11) NOT NULL COMMENT '被关注者用户ID', `followed_nickname` varchar(50) DEFAULT NULL COMMENT '被关注者昵称', `followed_phone` varchar(20) DEFAULT NULL COMMENT '被关注者手机号', `follow_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '关注状态:1-已关注 0-已取消', `is_deleted` tinyint(4) NOT NULL DEFAULT '0' COMMENT '逻辑删除:0-未删除 1-已删除', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `ext_field1` varchar(100) DEFAULT NULL COMMENT '扩展字段1:关注来源/渠道', `ext_field2` int(11) DEFAULT NULL COMMENT '扩展字段2:关注类型/优先级', `ext_field3` varchar(200) DEFAULT NULL COMMENT '扩展字段3:特殊标记/备注', `ext_field4` bigint(20) DEFAULT NULL COMMENT '扩展字段4:关联数据ID', `ext_field5` text COMMENT '扩展字段5:JSON扩展数据', PRIMARY KEY (`id`), UNIQUE KEY `uk_follower_followed` (`follower_id`,`followed_id`), KEY `idx_follower_id` (`follower_id`), KEY `idx_followed_id` (`followed_id`), KEY `idx_follow_status` (`follow_status`), KEY `idx_is_deleted` (`is_deleted`), KEY `idx_create_time` (`create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='关注记录表'; SELECT '✓ eb_follow_record 表创建成功' as status; -- 迁移数据 INSERT IGNORE INTO eb_follow_record (follower_id, follower_nickname, follower_phone, followed_id, followed_nickname, followed_phone, follow_status, is_deleted, create_time) SELECT uf.user_id as follower_id, u1.nickname as follower_nickname, u1.phone as follower_phone, uf.follow_user_id as followed_id, u2.nickname as followed_nickname, u2.phone as followed_phone, 1 as follow_status, 0 as is_deleted, uf.create_time FROM eb_user_follow uf LEFT JOIN eb_user u1 ON uf.user_id = u1.uid LEFT JOIN eb_user u2 ON uf.follow_user_id = u2.uid WHERE EXISTS (SELECT 1 FROM eb_user_follow LIMIT 1); SELECT '✓ 数据迁移完成' as status; -- 显示统计信息 SELECT 'eb_user_follow (原表)' as table_name, COUNT(*) as record_count FROM eb_user_follow UNION ALL SELECT 'eb_follow_record (新表)' as table_name, COUNT(*) as record_count FROM eb_follow_record; EOF if [ $? -eq 0 ]; then echo "" echo "==========================================" echo "✓ 数据库修复完成!" echo "==========================================" echo "" echo "下一步:" echo "1. 重启后端服务: cd /root/zhibo/Zhibo/zhibo-h && ./restart.sh" echo "2. 重新编译Android应用" echo "3. 测试关注功能" else echo "" echo "==========================================" echo "✗ 执行失败,请检查错误信息" echo "==========================================" exit 1 fi