MergeServerDefine.lua 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. --合服
  2. --_G.lua_mongo 提供的接口
  3. --[=[
  4. find()
  5. md5()
  6. id()
  7. next()
  8. client()
  9. remove()
  10. index()
  11. auth()
  12. count()
  13. update()
  14. ]=]--
  15. --备份和恢复
  16. --[=[
  17. 备份
  18. mongodump --db 要备份的数据库名字 --out 备份文件存放目录
  19. 如: mongodump --db ckwy_fy_S350052 --out /cipan1/dumpDB/
  20. 脚本: /server/dumpDB.sh 需要修改脚本中的数据库范围
  21. 将备份文件恢复
  22. mongorestore --db 数据库存放目录 备份文件目录
  23. mongorestore --db=ckwy_fy_S350077 --drop /server/bin3/dumpDB/ckwy_fy_S350077 --增加 --drop参数,会先删除数据库,再恢复
  24. mongorestore --db=ckwy_fy_S3500002 /server/bin3/dumpDB/ckwy_fy_S3500002
  25. 脚本: /server/restoreDB.sh 需要根据dumpDB.sh 修改脚本中的备份数据所在目录, 以及数据库范围
  26. ]=]--
  27. --[=[
  28. --1.使用 newUniqueTag 代替 account
  29. --2. 合并数据逻辑
  30. ]=]--
  31. KEY_CIYUAN_MOZHU = "ciyuanMoZhu" -- 次元魔蛛的key
  32. KEY_MERGE_TIME = "mergeServerTime" -- 合服时间
  33. ---------------------同名-------------
  34. NEW_NAME = "银月的青锋使" -- 玩家同名时的新名字 .. num
  35. MAIL_ID = 7013 -- 同名玩家改名后补偿邮件的ID
  36. MAIL_NUM = 500 -- 邮件补偿古玉数量
  37. -------------------烟花----------------
  38. KEY_FIREWORKBONUS_TIME = "fireWorksBonusTime" -- 烟花加成时间key
  39. FIRE_MAX_TIME = 43200 -- 烟花最大加成时间(12h)
  40. ------------日志----------------------
  41. SUCC_TAG = "succ"
  42. ERR_TAG = "err"
  43. CHANGENAME_TAG = "changeName"
  44. --------------------------------------
  45. -- 渠道ID
  46. -- CHANNEL_ID_TAP = 1
  47. -- CHANNEL_ID_SANLI_ANDOIRD = 2
  48. -- CHANNEL_ID_SANLI_IOS = 3
  49. -- CHANNEL_ID_SANLI_QQ = 4
  50. -- CHANNEL_ID_SANLI_H5 = 5
  51. -- CHANNEL_ID_SANLI_4399 = 6
  52. -- CHANNEL_ID_SANLI_360 = 7
  53. -- 数据库名中字符串部分的格式
  54. DB_NAME_STR = "ckwy_fy_"
  55. -- 渠道对应的数据库名中数字部分的初始值
  56. --!!! 当前项目 ckwy_fy_S350002 是1服的数据库, ckwy_fy_S350003 是2服的数据库, ckwy_fy_S350004 是3服的数据库, 以此类推...
  57. CHANNEL_2_DBNUMBER = {
  58. -- TAP
  59. -- [CHANNEL_ID_TAP] = 350001,
  60. -- --三狸 Andorid/IOS
  61. -- [CHANNEL_ID_SANLI_ANDOIRD] = 350001,
  62. -- [CHANNEL_ID_SANLI_IOS] = 350001,
  63. -- -- 三狸QQ,360
  64. -- [CHANNEL_ID_SANLI_QQ] = 650001,
  65. -- [CHANNEL_ID_SANLI_360] = 650001,
  66. -- -- 三狸H5,4399
  67. -- [CHANNEL_ID_SANLI_H5] = 550001,
  68. -- [CHANNEL_ID_SANLI_4399] = 550001,
  69. ["Tap"] = 350001,
  70. --三狸 Andorid/IOS
  71. ["三狸安卓"] = 350001,
  72. ["三狸IOs"] = 350001,
  73. -- 三狸QQ,360
  74. ["三狸QQ"] = 650001,
  75. ["三狸360"] = 650001,
  76. -- 三狸H5,4399
  77. ["三狸H5"] = 550001,
  78. ["三狸4399"] = 550001,
  79. }
  80. -- 要进行合并的数据库所属渠道ID, 用于检测合错数据库的情况, 与下面的 MERGE_DB_TB 的值一一对应
  81. MERGE_CHANNEL_TB = {
  82. -- {{三狸安卓, 31}, {三狸安卓, 32}, {三狸H5, 21}, {三狸H5, 22} },
  83. }
  84. --要进行数据合并的数据库列表, 每个value中第一个为目标数据库,其他为源数据库
  85. --!!! 当前项目 ckwy_fy_S350002 是1服的数据库, ckwy_fy_S350003 是2服的数据库, ckwy_fy_S350004 是3服的数据库, 以此类推...
  86. MERGE_DB_TB = {
  87. -- 木子
  88. -- {"ckwy_fy_S350002", "ckwy_fy_S350003"},
  89. -- {"ckwy_fy_S350004", "ckwy_fy_S350005"},
  90. -- {"ckwy_fy_S350006", "ckwy_fy_S350007"},
  91. -- {"ckwy_fy_S350008", "ckwy_fy_S350009"},
  92. -- {"ckwy_fy_S350010", "ckwy_fy_S350011"},
  93. -- {"ckwy_fy_S350012", "ckwy_fy_S350013"},
  94. -- {"ckwy_fy_S350014", "ckwy_fy_S350015"},
  95. -- {"ckwy_fy_S350016", "ckwy_fy_S350017"},
  96. -- {"ckwy_fy_S350018", "ckwy_fy_S350019"},
  97. -- {"ckwy_fy_S350020", "ckwy_fy_S350021"},
  98. -- 三狸安卓/H5
  99. -- {"ckwy_fy_S350022", "ckwy_fy_S350023", "ckwy_fy_S550012", "ckwy_fy_S550013"},
  100. -- {"ckwy_fy_S350024", "ckwy_fy_S350025", "ckwy_fy_S550014", "ckwy_fy_S550015"},
  101. -- {"ckwy_fy_S350026", "ckwy_fy_S350027", "ckwy_fy_S550016", "ckwy_fy_S550017"},
  102. -- {"ckwy_fy_S350028", "ckwy_fy_S350029", "ckwy_fy_S550018", "ckwy_fy_S550019"},
  103. -- {"ckwy_fy_S350030", "ckwy_fy_S350031", "ckwy_fy_S550020", "ckwy_fy_S550021"},
  104. {"ckwy_fy_S350032", "ckwy_fy_S350033", "ckwy_fy_S550022", "ckwy_fy_S550023"},
  105. {"ckwy_fy_S350034", "ckwy_fy_S350035", "ckwy_fy_S550024", "ckwy_fy_S550025"},
  106. {"ckwy_fy_S350036", "ckwy_fy_S350037", "ckwy_fy_S550026", "ckwy_fy_S550027"},
  107. {"ckwy_fy_S350038", "ckwy_fy_S350039", "ckwy_fy_S550028", "ckwy_fy_S550029"},
  108. {"ckwy_fy_S350040", "ckwy_fy_S350041", "ckwy_fy_S550030", "ckwy_fy_S550031"},
  109. -- 三狸QQ
  110. -- {"ckwy_fy_S650002", "ckwy_fy_S650003"},
  111. -- {"ckwy_fy_S650004", "ckwy_fy_S650005"},
  112. -- {"ckwy_fy_S650006", "ckwy_fy_S650007"},
  113. -- {"ckwy_fy_S650008", "ckwy_fy_S650009"},
  114. -- {"ckwy_fy_S650010", "ckwy_fy_S650011"},
  115. -- {"ckwy_fy_S650012", "ckwy_fy_S650013"},
  116. -- {"ckwy_fy_S650014", "ckwy_fy_S650015"},
  117. -- {"ckwy_fy_S650016", "ckwy_fy_S650017"},
  118. -- {"ckwy_fy_S650018", "ckwy_fy_S650019"},
  119. -- {"ckwy_fy_S650020", "ckwy_fy_S650021"},
  120. }
  121. --所有要处理的集合
  122. COLLECTIONS = {
  123. ".char", -- 角色表, 可以直接插入
  124. ".mail" , -- 邮件,可以直接插入
  125. ".common", -- 通用数据(开服时间)
  126. ".friend", -- 好友数据库表, 可以直接插入
  127. ".boss_data", -- boss记录表, 可以直接插入
  128. ".union", -- 工会数据表, 可以直接插入
  129. ".jjc", -- 单人竞技场, 可以直接插入
  130. ".combat_video", -- 战斗录像[本地记录 个人记录 单人竞技场 通天塔 王者争霸 战役记录],可以直接插入
  131. ".drill_data", -- 圣树试炼/过关斩将,可以直接插入
  132. ".union_war", -- 公会战,可以直接插入
  133. ".union_war_record", -- 公会战记录, 可以直接插入
  134. ".the_stars", -- 星空争霸, 可以直接插入
  135. ".abs_billboard", -- 绝对时间排行榜记录, 可以直接插入
  136. ".middle_act_group", -- 跨服活动分组记录, 暂时没使用,不管
  137. ".battle_shark", -- 战役通关战报
  138. ".tower", -- 全服通天塔 信息, 可以直接插入
  139. ".hero_pingfen", -- 英雄评分信息用于排名, 可以直接插入
  140. ".jjcGodWar", -- 众神之战 ,可以直接插入
  141. ".jjcGodWar_record", -- 众神之战记录 ,可以直接插入
  142. ".chat_record", -- 好友聊天记录 ,可以直接插入
  143. ".jjcLadder", -- 天梯争霸 ,可以直接插入
  144. ".jjcLadder_record", -- 天梯争霸记录 ,可以直接插入
  145. ".yjTreasure", -- 遗迹探宝 , 可以直接插入
  146. ".yjTreasure_rank", -- 遗迹探宝排行
  147. ".yjTreasure_role", -- 遗迹探宝角色信息 , 可以直接插入
  148. ".valley", -- 荣耀峡谷/龙族战场 ,可以直接插入
  149. ".valley_record", -- 荣耀峡谷/龙族战场记录, 可以直接插入
  150. ".war_report", -- 战报[跨服记录 冠军联赛 王者争霸 天梯 切磋 系列排名存储记录], 可以直接插入
  151. ".openServer_billboard", -- 开服排行类活动,可以直接插入
  152. ".lost_temple", -- 神庙
  153. ".common_rank", -- 通用排行榜,可以直接插入
  154. }
  155. --源数据库中不需要插入目标数据库的集合列表
  156. --[=[
  157. middle_act_group 暂时没用到这个集合,所以也只用目标数据库的集合
  158. the_stars 战神殿, 只保留宿主服的记录
  159. battle_shark 主线闯关录像, 只用宿主服的
  160. ]=]--
  161. NO_INSERT_COLLECTIONS = {
  162. --[".common"] = 1,
  163. [".middle_act_group"] = 1,
  164. [".the_stars"] = 1,
  165. [".battle_shark"] = 1,
  166. [".jjcGodWar"] = 1,
  167. --[".jjcGodWar_record"] = 1,
  168. --[".tower"] = 1,
  169. }
  170. --用到char 集合中的 _id 字段的集合, 如果 char 集合中的 _id 有修改, 则这些集合中的 _id 也需要修改
  171. NEED_CHANGE_COLLECTIONS = {
  172. [".friend"] = '1',
  173. [".mail"] = '1',
  174. [".union"] = '1',
  175. [".the_stars"] = '1',
  176. [".jjc"] = '1',
  177. [".combat_video"] = '1',
  178. }