Project

General

Profile

追加功能 #499

Updated by Xihua Fan about 2 months ago

*Background* 
 # 国内的AWS迁移到海外(新加坡),主要分3个Web资源。 
 ## OTS3.0 
 ## Easydingzhi 
 ## Redmine 
 # 国内其他云服务(阿里云: 域名, DNS, SSL等)不在迁移计划内。 

 *Task Details(概要)* 
 * 1. OTS3.0 
 ** 1.1 数据库数据迁移(主要是订单数据,产品+文件等除外)到OTS4.0 
        问题1:OTS3.0老订单数字5位,比如 EASY00001 - EASY99999,OTS4.0新订单数字6位,比如 EASY100001 
        问题2:OTS4.0新订单数字6位,既存数据需要保留嘛?如果保留可能需要统一【id + 100000】,否者删除即可。另外UI6位数字是否换行等,需要排查 
 ** 1.2 SSL域名迁移 
        OTS3.0 = order3.easydingzhi.com (现域名:order.easydingzhi.com) 
        OTS4.0 = order.easydingzhi.com 
 ** 1.3 OTS3.0备份 所有DB, Uploaded files数据全部迁移(1月内完成) 
        Uploaded files数据半年前的数据备份onedrive。 

 * 2. Easydingzhi 
      所有DB, 图片,Uploaded files数据全部迁移(1月内完成) 

 * 3. Redmine (IT团队使用) 
      所有DB, Uploaded files数据全部迁移(1月内完成) 

 * 4. 其他:等1-3全部完成,将全部关闭AWS China,并注销【网站备注】。 

 *Task Details(OTS3.0 -> OTS4.0 数据迁移的详细步骤)* 

 * 0. *%{color:red}事先准备(重要)%* 
      - 备份v4数据库(最新) 
        如果是SBX测试的数据库,无须备份可以直接PROD覆盖SBX 
      - 导出v3数据库(最新) 

 * 1. 数据保留【v4 11月-1月】:Van 
      - 1.1 查找和v3的不同,需要order全匹配并组装【order id mapping表】 

 * 2. 数据清除【v4 11月前】: 
      - 2.1 DB SQL批处理 
      - 2.2 File 手动处理 
      - 2.3 删除o.is_delete = 1的数据(包括2.1 + 2.2)。另需要通过o.is_delete=1, 对应的其他表的数据(order_product, packing等相关的表)都删除 
      - 2.4 删除脏数据: order_id = 2081, 2082 

 * 3. 数据导入【v3 全部】: 
      - 3.1 v4 11月-1月的order id + 70000(临时:给v3导入腾出id空间),注意DB+File都要处理 
      - 3.2 导入v3数据,重复的order id = 80000+, 且order status = completed(80) 
      - 3.3 根据1.1的mapping表,恢复2.1为真实的order id(v3老的id) 
      --3.3.1 先根据mapping表中的v3.order_id(ca_index) 将导入的v3数据删除一遍(关联的表都需要删除)。 
      --3.3.2 再根据mapping表,更新v4数据为v3数据(如果v4存在多个相同的v3.order_id,执行合并操作) 

 *v4 coding standard:* 
 # Git提交 
   #xxx(redmine number): xxx(redmine title) - xxx(任意:补充内容) 
    
 # 代码规范 
  2.1: 结构:Public -> Protected -> Private 
  2.2: 其他代码规范同SBX 
    
 # MVCL的v3/v4物理分割 
  3.1: v3/v4的代码分为两个文件,比如: order.php, order_v3.php 
  3.2: system也分为两个文件,暂时只有一个user_v3 
     - Note: front的$this->user在v4中会替换为$this->customer, 即v4中需要清除$this->user 
  3.3: 代码中,区分v3/v4的调用,比如:new User_V3 
   
 # 前台代码 
   twig, js, css (js, css尽量写在单独的css文件中) 
     
 # 后台代码 
   MVCL    (L:en,cn) 
     
 # 注释 
 ## 类名: 
 <pre> 
 /** 
  * xxx 
  * 
  * @copyright RedBlue-OTS 2024 
  * @version v4 
  * 
  */ 
 </pre> 
 ## 函数名:参数类型 + 返回值类型 
 <pre> 
     /** 
      * xxx 
      * 
      * @param    xxx $xxx 
      * @param    xxx $xxx 
      * @return xxx 
      */ 
 </pre> 

 *Output* 
 * Report and Solution 

 *Others*

Back