diff --git a/packages/cubejs-playground/src/SchemaPage.js b/packages/cubejs-playground/src/SchemaPage.js index 43d259684414b..04b138c55a5ad 100644 --- a/packages/cubejs-playground/src/SchemaPage.js +++ b/packages/cubejs-playground/src/SchemaPage.js @@ -95,7 +95,7 @@ class SchemaPage extends Component { } async generateSchema() { - const { checkedKeys } = this.state; + const { checkedKeys, tablesSchema } = this.state; const { history } = this.props; playgroundAction('Generate Schema'); const res = await fetch('/playground/generate-schema', { @@ -103,7 +103,10 @@ class SchemaPage extends Component { headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ tables: checkedKeys.filter(k => k.split('.').length === 2) }) + body: JSON.stringify({ + tables: checkedKeys.filter(k => k.split('.').length === 2), + tablesSchema + }) }); if (res.status === 200) { playgroundAction('Generate Schema Success'); diff --git a/packages/cubejs-server-core/core/DevServer.js b/packages/cubejs-server-core/core/DevServer.js index a1470d7845daa..1d730a258c1a3 100644 --- a/packages/cubejs-server-core/core/DevServer.js +++ b/packages/cubejs-server-core/core/DevServer.js @@ -69,7 +69,7 @@ class DevServer { app.post('/playground/generate-schema', catchErrors(async (req, res) => { this.cubejsServer.event('Dev Server Generate Schema'); const driver = await this.cubejsServer.getDriver(); - const tablesSchema = await driver.tablesSchema(); + const tablesSchema = req.body.tablesSchema || (await driver.tablesSchema()); const ScaffoldingTemplate = require('@cubejs-backend/schema-compiler/scaffolding/ScaffoldingTemplate'); const scaffoldingTemplate = new ScaffoldingTemplate(tablesSchema, driver);