diff --git a/packages/cubejs-server-core/src/core/DevServer.ts b/packages/cubejs-server-core/src/core/DevServer.ts index cecdd8fe6483..dbe4b953c744 100644 --- a/packages/cubejs-server-core/src/core/DevServer.ts +++ b/packages/cubejs-server-core/src/core/DevServer.ts @@ -161,12 +161,10 @@ export class DevServer { }); const files = scaffoldingTemplate.generateFilesByTableNames(req.body.tables, { dataSource }); - const schemaPath = options.schemaPath || 'schema'; - - await fs.emptyDir(path.join(schemaPath, 'cubes')); - await fs.emptyDir(path.join(schemaPath, 'views')); + await fs.emptyDir(path.join(options.schemaPath, 'cubes')); + await fs.emptyDir(path.join(options.schemaPath, 'views')); - await fs.writeFile(path.join(schemaPath, 'views', 'example_view.yml'), `# In Cube, views are used to expose slices of your data graph and act as data marts. + await fs.writeFile(path.join(options.schemaPath, 'views', 'example_view.yml'), `# In Cube, views are used to expose slices of your data graph and act as data marts. # You can control which measures and dimensions are exposed to BIs or data apps, # as well as the direction of joins between the exposed cubes. # You can learn more about views in documentation here - https://cube.dev/docs/schema/reference/view @@ -195,7 +193,7 @@ export class DevServer { # prefix: true # includes: # - city`); - await Promise.all(files.map(file => fs.writeFile(path.join(schemaPath, 'cubes', file.fileName), file.content))); + await Promise.all(files.map(file => fs.writeFile(path.join(options.schemaPath, 'cubes', file.fileName), file.content))); res.json({ files }); })); diff --git a/packages/cubejs-server-core/src/core/OptsHandler.ts b/packages/cubejs-server-core/src/core/OptsHandler.ts index 52dbc330a4e4..55731d1aa0c9 100644 --- a/packages/cubejs-server-core/src/core/OptsHandler.ts +++ b/packages/cubejs-server-core/src/core/OptsHandler.ts @@ -468,7 +468,7 @@ export class OptsHandler { (this.isDevMode() ? 'dev_pre_aggregations' : 'prod_pre_aggregations'), - schemaPath: process.env.CUBEJS_SCHEMA_PATH || 'schema', + schemaPath: getEnv('schemaPath'), scheduledRefreshTimer: getEnv('refreshWorkerMode'), sqlCache: true, livePreview: getEnv('livePreview'), diff --git a/packages/cubejs-server-core/src/core/types.ts b/packages/cubejs-server-core/src/core/types.ts index 783cc82fab20..68fd911a3858 100644 --- a/packages/cubejs-server-core/src/core/types.ts +++ b/packages/cubejs-server-core/src/core/types.ts @@ -230,6 +230,7 @@ export type ServerCoreInitializedOptions = Required< 'telemetry' | 'dashboardAppPath' | 'dashboardAppPort' | + 'schemaPath' | 'driverFactory' | 'dialectFactory' | 'externalDriverFactory' |