-- ============================================================ -- 用户数据迁移脚本 -- Feature: database-migration, Property 2: 数据记录数一致性 -- Feature: database-migration, Property 3: 时间戳转换正确性 -- Validates: Requirements 1.5, 1.6 -- ============================================================ USE honey_box; GO -- ============================================================ -- 1. users 表迁移 -- ============================================================ -- 源表: MySQL user (2,202 条记录) -- 目标表: SQL Server users -- 字段映射: openid->open_id, headimg->head_img, istest->is_test -- 时间戳转换: DATEADD(SECOND, unix_timestamp, '1970-01-01') -- 状态: 已完成 (72条样本数据已验证) -- ============================================================ -- 2. user_accounts 表迁移 -- ============================================================ -- 源表: MySQL user_account (3,452 条记录) -- 目标表: SQL Server user_accounts -- 字段映射: 字段名保持一致 -- 时间戳转换: token_time, last_login_time (Unix时间戳 → DATETIME2) -- 状态: 进行中 -- 迁移方法说明: -- 1. 启用 IDENTITY_INSERT: SET IDENTITY_INSERT user_accounts ON; -- 2. 批量插入数据,每批50-100条 -- 3. 时间戳转换: DATEADD(SECOND, unix_timestamp, '1970-01-01') -- 4. 完成后关闭: SET IDENTITY_INSERT user_accounts OFF; -- 示例插入语句: -- INSERT INTO user_accounts (id, user_id, account_token, token_num, token_time, last_login_time, last_login_ip, last_login_ip1, ip_adcode, ip_province, ip_city) VALUES -- (id, user_id, N'token', N'token_num', DATEADD(SECOND, token_time, '1970-01-01'), DATEADD(SECOND, last_login_time, '1970-01-01'), N'ip', N'ip1', N'adcode', N'province', N'city'); -- 验证迁移后的记录数 SELECT 'users' as table_name, COUNT(*) AS migrated_count FROM users UNION ALL SELECT 'user_accounts' as table_name, COUNT(*) AS migrated_count FROM user_accounts; GO