Files
rootandClaude Opus 5 0fbd63ba10 [AI] chore: 纳入 dbseed 一次性建库播种工具
hgmj 从 91dj_video 建库时写的工具,user 表按 uid < 30000 过滤,
排除交易/分析/IM/AI/UGC 等大表。之前一直没入库。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-29 20:18:44 +08:00

78 lines
3.8 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package main
import "go.mongodb.org/mongo-driver/bson"
// SeedSpec 一个要播种的集合。Filter 为 nil 表示整表搬。
type SeedSpec struct {
Name string
Filter bson.M
}
// seedSpecs 是 91dj_video -> hgmj 的播种清单。
//
// 只搬「内容」与「配置」,外加用户表的一个子集。刻意排除的几类:
// - 交易与资产:transaction / wallet / recharge_order / product_history /
// media_buy_record / pay_video_log / advance_order / backpack / video_coupon /
// fund_transfer_log / withdraw_order
// - 埋点与事件:vip_card_analytics_event(496万) / event(270万) / user_act /
// operation_log / ip_block / user_watch_record(474万)
// - IM 与 AI 生成内容:im_user(82万) / im_group / chat_message / ai_plaza(15.7万) /
// ai_un_dress / ai_change_face / ai_change_face_img / ai_text_to_* / ai_image_to_video
// - 用户行为与 UGC:comment(33.7万) / like(17.6万) / collect(9.8万) /
// media_bookshelf(8万) / user_follow / user_checkin / invitation / user_feedback
// - 运行时任务:task / export_task
//
// 排除它们的原因:用户表只搬 205 个 uid,这些按 uid 关联的表搬过去会产生大量
// 指向不存在用户的孤儿记录;埋点和事件是源站历史,对新站报表无意义。
var seedSpecs = []SeedSpec{
// ---- 内容 ----
{Name: "video_info"}, // 帖子与视频(newsType 区分 SP/COVER/SHORT/PIC/SEED_LINK)
{Name: "section_video"}, // 模块下的视频编排
{Name: "section"}, // 模块/专题
{Name: "media"}, // 短剧主表
{Name: "media_content"}, // 剧集内容
{Name: "media_tag"}, // 短剧标签
{Name: "media_tag_dimension"}, // 标签维度
{Name: "tag"}, // 视频标签
{Name: "ai_change_face_video"}, // AI 换脸视频模版(模版属于内容,不是用户生成结果)
// ---- 配置 ----
{Name: "sys_conf"}, // 系统通用配置
{Name: "module_conf"}, // 模块配置
{Name: "product"}, // 商品(会员卡)
{Name: "product_benefit"}, // 商品权益
{Name: "product_position"}, // 商品位
{Name: "vip_card_experiment"}, // 会员卡 A/B 实验配置(源库有 5 条,会在新站生效)
{Name: "currency"}, // 币种
{Name: "jingang"}, // 金刚区
{Name: "banner_jump"}, // Banner 跳转
{Name: "official_config"}, // 官方配置
{Name: "daily_task"}, // 每日任务
{Name: "once_task"}, // 一次性任务
{Name: "task_config"}, // 任务配置
{Name: "sign_task_config"}, // 签到任务配置
{Name: "checkin_config"}, // 签到配置
{Name: "checkin_prize"}, // 签到奖品
{Name: "integral_config"}, // 积分配置
{Name: "video_gold_coin_ser"}, // 金币视频配置
{Name: "activity_prize"}, // 活动奖品
{Name: "transaction_act"}, // 交易活动配置
{Name: "withdraw_channel"}, // 提现渠道
{Name: "withdraw_tariff"}, // 提现费率
{Name: "source"}, // 资源管理
{Name: "filter"}, // 敏感词
{Name: "reject_template"}, // 驳回模板
{Name: "location"}, // 地区
{Name: "announce"}, // 公告
{Name: "quick_search"}, // 快捷搜索
{Name: "ip_white"}, // IP 白名单(ip_block 是运行时封禁,不搬)
{Name: "admin"}, // 后台账号
{Name: "authority"}, // 权限
{Name: "auto_id"}, // 自增序列:必须搬,否则新站发号可能与已搬内容的 ID 冲撞
// ---- 用户子集 ----
// uid 在源库只连续分配到 205,之后直接跳到 100 万以上,
// 所以 <30000 实际就是这 205 个早期账号。
{Name: "user", Filter: bson.M{"uid": bson.M{"$lt": 30000}}},
}