playground 是一个很不错的选择,可以方便的为我们生成cube.js schema 但是如果经常使用的话,会发现一些问题
只包含了为string类型的列
当然这个应该是一个bug,具体可以参考 https://github.com/cube-js/cube.js/blob/master/packages/cubejs-schema-compiler/src/scaffolding/ScaffoldingSchema.js#L144
对于列包含了一些常见属于的就会自动放到度量中
参考命名
// 会自动到度量中
const MEASURE_DICTIONARY = [
'amount',
'price',
'count',
'balance',
'total',
'number',
'cost',
'qty',
'quantity',
'duration',
'value'
];
// 会自动添加drill
const DRILL_MEMBERS_DICTIONARY = [
'id',
'name',
'title',
'firstname',
'first_name',
'lastname',
'last_name',
'createdat',
'created_at',
'created',
'timestamp',
'city',
'country',
'date'
];
当然这个并没有多大问题,但是会造成加入我们的列包含了上述字段那就会出现生成的schema 编译问题
id 判断问题
参考正则
// 包含_id 以及id 的会自动识别为id
const idRegex = '_id$|id$';
说明
以上是一个日常的问题,推荐在命名的时候规避这些问题
参考资料
https://github.com/cube-js/cube.js/blob/master/packages/cubejs-schema-compiler/src/scaffolding/ScaffoldingSchema.js#L144
https://github.com/cube-js/cube.js/blob/master/packages/cubejs-schema-compiler/src/scaffolding/ScaffoldingSchema.js