| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- --合服
- --_G.lua_mongo 提供的接口
- --[=[
- find()
- md5()
- id()
- next()
- client()
- remove()
- index()
- auth()
- count()
- update()
- ]=]--
- --备份和恢复
- --[=[
- 备份
- mongodump --db 要备份的数据库名字 --out 备份文件存放目录
- 如: mongodump --db ckwy_fy_S350052 --out /cipan1/dumpDB/
- 脚本: /server/dumpDB.sh 需要修改脚本中的数据库范围
- 将备份文件恢复
- mongorestore --db 数据库存放目录 备份文件目录
- mongorestore --db=ckwy_fy_S350077 --drop /server/bin3/dumpDB/ckwy_fy_S350077 --增加 --drop参数,会先删除数据库,再恢复
- mongorestore --db=ckwy_fy_S3500002 /server/bin3/dumpDB/ckwy_fy_S3500002
- 脚本: /server/restoreDB.sh 需要根据dumpDB.sh 修改脚本中的备份数据所在目录, 以及数据库范围
- ]=]--
- --[=[
- --1.使用 newUniqueTag 代替 account
- --2. 合并数据逻辑
- ]=]--
- KEY_CIYUAN_MOZHU = "ciyuanMoZhu" -- 次元魔蛛的key
- KEY_MERGE_TIME = "mergeServerTime" -- 合服时间
- ---------------------同名-------------
- NEW_NAME = "银月的青锋使" -- 玩家同名时的新名字 .. num
- MAIL_ID = 7013 -- 同名玩家改名后补偿邮件的ID
- MAIL_NUM = 500 -- 邮件补偿古玉数量
- -------------------烟花----------------
- KEY_FIREWORKBONUS_TIME = "fireWorksBonusTime" -- 烟花加成时间key
- FIRE_MAX_TIME = 43200 -- 烟花最大加成时间(12h)
- ------------日志----------------------
- SUCC_TAG = "succ"
- ERR_TAG = "err"
- CHANGENAME_TAG = "changeName"
- --------------------------------------
- -- 渠道ID
- CHANNEL_ID_TAP = 1
- CHANNEL_ID_SANLI_ANDOIRD = 2
- CHANNEL_ID_SANLI_IOS = 3
- CHANNEL_ID_SANLI_QQ = 4
- CHANNEL_ID_SANLI_H5 = 5
- CHANNEL_ID_SANLI_4399 = 6
- CHANNEL_ID_SANLI_360 = 7
- -- 数据库名中字符串部分的格式
- DB_NAME_STR = "ckwy_fy_S"
- -- 渠道对应的数据库名中数字部分的初始值
- --!!! 当前项目 ckwy_fy_S350002 是1服的数据库, ckwy_fy_S350003 是2服的数据库, ckwy_fy_S350004 是3服的数据库, 以此类推...
- CHANNEL_2_DBNUMBER = {
- -- TAP
- [CHANNEL_ID_TAP] = 350001,
- --三狸 Andorid/IOS
- [CHANNEL_ID_SANLI_ANDOIRD] = 350001,
- [CHANNEL_ID_SANLI_IOS] = 350001,
- -- 三狸QQ,360
- [CHANNEL_ID_SANLI_QQ] = 650001,
- [CHANNEL_ID_SANLI_360] = 650001,
- -- 三狸H5,4399
- [CHANNEL_ID_SANLI_H5] = 550001,
- [CHANNEL_ID_SANLI_4399] = 550001,
- }
- -- 要进行合并的数据库所属渠道ID, 用于检测合错数据库的情况, 与下面的 MERGE_DB_TB 的值一一对应
- -- 格式: 渠道Id, 区服Id, 标识(0-宿主服, 1-被合服, 2-被合服, 且被合并到另外一个跨服)
- MERGE_CHECK_TB = {
- -- 木子/Tap
- [CHANNEL_ID_TAP] = {
- { {CHANNEL_ID_TAP, 21, 0}, {CHANNEL_ID_TAP, 22, 1} },
- { {CHANNEL_ID_TAP, 23, 0}, {CHANNEL_ID_TAP, 24, 1} },
- { {CHANNEL_ID_TAP, 25, 0}, {CHANNEL_ID_TAP, 26, 1} },
- { {CHANNEL_ID_TAP, 27, 0}, {CHANNEL_ID_TAP, 28, 1} },
- { {CHANNEL_ID_TAP, 29, 0}, {CHANNEL_ID_TAP, 30, 1} },
- },
- -- 三狸功夫
- [CHANNEL_ID_SANLI_ANDOIRD] = {
- { {CHANNEL_ID_SANLI_ANDOIRD, 41, 0}, {CHANNEL_ID_SANLI_ANDOIRD, 42, 1}, {CHANNEL_ID_SANLI_H5, 31, 2}, {CHANNEL_ID_SANLI_H5, 32, 2} },
- { {CHANNEL_ID_SANLI_ANDOIRD, 43, 0}, {CHANNEL_ID_SANLI_ANDOIRD, 44, 1}, {CHANNEL_ID_SANLI_H5, 33, 2}, {CHANNEL_ID_SANLI_H5, 34, 2} },
- { {CHANNEL_ID_SANLI_ANDOIRD, 45, 0}, {CHANNEL_ID_SANLI_ANDOIRD, 46, 1}, {CHANNEL_ID_SANLI_H5, 35, 2}, {CHANNEL_ID_SANLI_H5, 36, 2} },
- { {CHANNEL_ID_SANLI_ANDOIRD, 47, 0}, {CHANNEL_ID_SANLI_ANDOIRD, 48, 1}, {CHANNEL_ID_SANLI_H5, 37, 2}, {CHANNEL_ID_SANLI_H5, 38, 2} },
- { {CHANNEL_ID_SANLI_ANDOIRD, 49, 0}, {CHANNEL_ID_SANLI_ANDOIRD, 50, 1}, {CHANNEL_ID_SANLI_H5, 39, 2}, {CHANNEL_ID_SANLI_H5, 40, 2} },
- },
- -- 三狸H5
- [CHANNEL_ID_SANLI_H5] = {
- { {CHANNEL_ID_SANLI_ANDOIRD, 41, 0}, {CHANNEL_ID_SANLI_H5, 31, 2}, {CHANNEL_ID_SANLI_H5, 32, 2} },
- { {CHANNEL_ID_SANLI_ANDOIRD, 43, 0}, {CHANNEL_ID_SANLI_H5, 33, 2}, {CHANNEL_ID_SANLI_H5, 34, 2} },
- { {CHANNEL_ID_SANLI_ANDOIRD, 45, 0}, {CHANNEL_ID_SANLI_H5, 35, 2}, {CHANNEL_ID_SANLI_H5, 36, 2} },
- { {CHANNEL_ID_SANLI_ANDOIRD, 47, 0}, {CHANNEL_ID_SANLI_H5, 37, 2}, {CHANNEL_ID_SANLI_H5, 38, 2} },
- { {CHANNEL_ID_SANLI_ANDOIRD, 49, 0}, {CHANNEL_ID_SANLI_H5, 39, 2}, {CHANNEL_ID_SANLI_H5, 40, 2} },
- },
- -- 三狸QQ
- [CHANNEL_ID_SANLI_QQ] = {
- { {CHANNEL_ID_SANLI_QQ, 21, 0}, {CHANNEL_ID_SANLI_QQ, 22, 1} },
- { {CHANNEL_ID_SANLI_QQ, 23, 0}, {CHANNEL_ID_SANLI_QQ, 24, 1} },
- { {CHANNEL_ID_SANLI_QQ, 25, 0}, {CHANNEL_ID_SANLI_QQ, 26, 1} },
- { {CHANNEL_ID_SANLI_QQ, 27, 0}, {CHANNEL_ID_SANLI_QQ, 28, 1} },
- { {CHANNEL_ID_SANLI_QQ, 29, 0}, {CHANNEL_ID_SANLI_QQ, 30, 1} },
- },
- }
- --要进行数据合并的数据库列表, 每个value中第一个为目标数据库,其他为源数据库
- --!!! 当前项目 ckwy_fy_S350002 是1服的数据库, ckwy_fy_S350003 是2服的数据库, ckwy_fy_S350004 是3服的数据库, 以此类推...
- MERGE_DB_TB = {
- -- 木子
- {"ckwy_fy_S350022", "ckwy_fy_S350023"},
- {"ckwy_fy_S350024", "ckwy_fy_S350025"},
- {"ckwy_fy_S350026", "ckwy_fy_S350027"},
- {"ckwy_fy_S350028", "ckwy_fy_S350029"},
- {"ckwy_fy_S350030", "ckwy_fy_S350031"},
- -- 三狸安卓/H5
- {"ckwy_fy_S350042", "ckwy_fy_S350043", "ckwy_fy_S550032", "ckwy_fy_S550033"},
- {"ckwy_fy_S350044", "ckwy_fy_S350045", "ckwy_fy_S550034", "ckwy_fy_S550035"},
- {"ckwy_fy_S350046", "ckwy_fy_S350047", "ckwy_fy_S550036", "ckwy_fy_S550037"},
- {"ckwy_fy_S350048", "ckwy_fy_S350049", "ckwy_fy_S550038", "ckwy_fy_S550039"},
- {"ckwy_fy_S350050", "ckwy_fy_S350051", "ckwy_fy_S550040", "ckwy_fy_S550041"},
- -- 三狸QQ
- {"ckwy_fy_S650022", "ckwy_fy_S650023"},
- {"ckwy_fy_S650024", "ckwy_fy_S650025"},
- {"ckwy_fy_S650026", "ckwy_fy_S650027"},
- {"ckwy_fy_S650028", "ckwy_fy_S650029"},
- {"ckwy_fy_S650030", "ckwy_fy_S650031"},
- }
- --所有要处理的集合
- COLLECTIONS = {
- ".char", -- 角色表, 可以直接插入
- ".mail" , -- 邮件,可以直接插入
- ".common", -- 通用数据(开服时间)
- ".friend", -- 好友数据库表, 可以直接插入
- ".boss_data", -- boss记录表, 可以直接插入
- ".union", -- 工会数据表, 可以直接插入
- ".jjc", -- 单人竞技场, 可以直接插入
- ".combat_video", -- 战斗录像[本地记录 个人记录 单人竞技场 通天塔 王者争霸 战役记录],可以直接插入
- ".drill_data", -- 圣树试炼/过关斩将,可以直接插入
- ".union_war", -- 公会战,可以直接插入
- ".union_war_record", -- 公会战记录, 可以直接插入
- ".the_stars", -- 星空争霸, 可以直接插入
- ".abs_billboard", -- 绝对时间排行榜记录, 可以直接插入
- ".middle_act_group", -- 跨服活动分组记录, 暂时没使用,不管
- ".battle_shark", -- 战役通关战报
- ".tower", -- 全服通天塔 信息, 可以直接插入
- ".hero_pingfen", -- 英雄评分信息用于排名, 可以直接插入
- ".jjcGodWar", -- 众神之战 ,可以直接插入
- ".jjcGodWar_record", -- 众神之战记录 ,可以直接插入
- ".chat_record", -- 好友聊天记录 ,可以直接插入
- ".jjcLadder", -- 天梯争霸 ,可以直接插入
- ".jjcLadder_record", -- 天梯争霸记录 ,可以直接插入
- ".yjTreasure", -- 遗迹探宝 , 可以直接插入
- ".yjTreasure_rank", -- 遗迹探宝排行
- ".yjTreasure_role", -- 遗迹探宝角色信息 , 可以直接插入
- ".valley", -- 荣耀峡谷/龙族战场 ,可以直接插入
- ".valley_record", -- 荣耀峡谷/龙族战场记录, 可以直接插入
- ".war_report", -- 战报[跨服记录 冠军联赛 王者争霸 天梯 切磋 系列排名存储记录], 可以直接插入
- ".openServer_billboard", -- 开服排行类活动,可以直接插入
- ".lost_temple", -- 神庙
- ".common_rank", -- 通用排行榜,可以直接插入
- }
- --源数据库中不需要插入目标数据库的集合列表
- --[=[
- middle_act_group 暂时没用到这个集合,所以也只用目标数据库的集合
- the_stars 战神殿, 只保留宿主服的记录
- battle_shark 主线闯关录像, 只用宿主服的
- ]=]--
- NO_INSERT_COLLECTIONS = {
- --[".common"] = 1,
- [".middle_act_group"] = 1,
- [".the_stars"] = 1,
- [".battle_shark"] = 1,
- [".jjcGodWar"] = 1,
- --[".jjcGodWar_record"] = 1,
- --[".tower"] = 1,
- }
- --用到char 集合中的 _id 字段的集合, 如果 char 集合中的 _id 有修改, 则这些集合中的 _id 也需要修改
- NEED_CHANGE_COLLECTIONS = {
- [".friend"] = '1',
- [".mail"] = '1',
- [".union"] = '1',
- [".the_stars"] = '1',
- [".jjc"] = '1',
- [".combat_video"] = '1',
- }
|