Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CubeJs Preaggregation index fail to compile

I want to put an index on my rollup pre-aggregation cube js table :

  preAggregations: {
    projectDate: {
      type: `rollup`,
      measureReferences: [count, amount],
      dimensionReferences: [state, Projects.slug],
      timeDimensionReference: confirmedAt,
      granularity: `day`,
      refreshKey: {
        every: '1 day'
      },
      indexes: {
        main: {
          columns: [state]
        }
      }
    },
  }

However, the cube does not compile and I get the following error :

Error: Compile errors:
ShopperOrders.js:84
          columns: [state]
                    ^

ReferenceError: state is not defined
    at ShopperOrders.js:84:21
    at Script.runInContext (vm.js:127:20)
    at Script.runInNewContext (vm.js:133:17)
    at Object.runInNewContext (vm.js:299:38)
    at DataSchemaCompiler.compileFile

My state dimension is well defined, and the preaggregation works when I remove the index. Here is the schema :

cube(`ShopperOrders`, {
  sql: `SELECT * FROM shopper_orders`,

  joins: {
    ShopperOrderLines: {
      sql: `${CUBE}.id = ${ShopperOrderLines}.order_id`,
      relationship: `hasMany`
    }
  },

  measures: {
    count: {
      type: `count`
    },

    amount: {
      sql: `amount`,
      type: `sum`
    },
  },

  dimensions: {
    id: {
      sql: `id`,
      type: `number`,
      primaryKey: true
    },

    state: {
      sql: `state`,
      type: `string`
    },

    confirmedAt: {
      sql: `confirmed_at`,
      type: `time`
    }
  },

  preAggregations: {
    projectDate: {
      type: `rollup`,
      measureReferences: [count, amount],
      dimensionReferences: [state, Projects.slug],
      timeDimensionReference: confirmedAt,
      granularity: `day`,
      refreshKey: {
        every: '1 day'
      },
      index: {
        main: {
          columns: [state]
        }
      }
    },
  }
});

Do you know what could I've mis-declared or omitted ?

I used the example given in the doc: https://cube.dev/docs/pre-aggregations#indexes

like image 232
William Pollet Avatar asked Dec 18 '25 09:12

William Pollet


1 Answers

Could you please update version and try again? I'm almost sure you are using an old version of cube.js

like image 123
Trapenok Victor Avatar answered Dec 24 '25 12:12

Trapenok Victor