3

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

William Pollet
  • 191
  • 1
  • 10

1 Answers1

2

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

Trapenok Victor
  • 349
  • 2
  • 6