cube.js schemaversion的处理

cube.js 提供了动态schema 生成的处理,但是有些时候是需要进行schema 重新编译生成的
cube.js 提供了一个schemaVersion的配置选项可以用来解决此解决,我们可以基于api进行扩展

参考定义

注意此选项对于dev 模式是没有用的,因为dev每次都会进行schema 的编译处理的,需要在production环境测试

  • production 环境启用
    可以通过环境变量NODE_ENV='production',或者代码的devServer: false 控制
  • 参考代码
 
module.exports = {
  schemaVersion: async ({ authInfo }) => {
    const schemaVersions = await (
      await fetch('http://your-api-endpoint/schemaVersion')
    ).json();
    return schemaVersions[authInfo.tenantId];
  },
};

说明

如果进行schema 重新编译的处理我们就可以基于自己包装的一个通用服务,进行不同app 或者不同租户的版本管理,这样可以
包装schema数据的实时更新,增强系统的灵活性,同时可以方便的集成我们的ci/cd 系统或者软schema 的生命周期管理

参考资料

https://cube.dev/docs/schema/dynamic-schema-creation#usage-with-schema-version

posted on 2021-01-26 19:41  荣锋亮  阅读(172)  评论(0编辑  收藏  举报

导航