注意事项:

  1. 公有云禁止使用这种优化方式❗️❗️❗️❗️❗️
  2. 为什么使用持久化:由于我们所有的弹性模型的数据都是统一的存在于一张大的表中,如果创建新建的业务模型预计数据量较大(私有云预计几十万)可考虑使用持久化,这种方式可以将新的业务模型单独在数据库中创建一张表,其操作效率会大大增加
  3. 支持持久化的模型类型: 标准弹性模型/月份标准业务弹性模型
  4. 操作时注意区分模型名和表名
  5. 持久化字段要全部小写,不能出现大写字母

操作步骤

  1. 修改弹性模型属性(表名需要保证当前数据库的唯一性)

    1. 新增弹性模型或者月份弹性模型时,附加信息写入{"persistence_table": "表名"}

    2. 历史月份弹性模型需修改model层元数据配置{"persistence_table": "表名"}
    3. 历史标准弹性模型调用接口hcm.db.flex.model.edit


    4. {
        "model": null,
        "id_": "模型名",
        "info": {
          "company_id": 公司id,
          "name": "模型名",
          "id": "模型名",
          "persistence_table": "表名"
        }
      }


  2. 进入页面,对字段进行持久化(将弹性字段直接转为实体字段)

    common_model_list?filter_dict=%7B"model_name":"模型名"%7D&page_index=1&page_size=20&meta_state=solid&advance_filter_dict=%7B%7D&show_fields_key=%5B"type","is_logic","is_list"%5D&base_object_str=hcm.db.field.solid


    注意❗️❗️❗️❗️❗️:

    在持久化字段之前,需要检查字段类型是否正确,常见错误有

    a.  月份和年份字段不能设置为日期或者时间类型,需要设置成字符

    b.  整数类型和浮点数类型都设置成对应的类型,不要设置成字符
  3. 重启后端服务

  4. 执行接口

    db.adjust.persistence.table, 该接口无参数

  5. 执行数据迁移接口(在当前弹性模型已有数据的情况下需要执行该接口,无数据可忽略)

    hcm.db.flex.field.persist.table.migrate

              接口参数:{"model_name": "模型名“}

补充说明

如果模型已经操作过持久化了,还需要新增字段,非必要字段依然可以直接用新增弹性字段的方式处理,如果是关键字段(比如关联字段/查询字段/排序字段)则需要专门对字段做一下持久化,这种情况只需要重复上述2,3,4步骤即可


  • 无标签