Skip to content

Commit 8b5b9d3

Browse files
authored
feat(cubejs-cli): Ask question about database, if user forget to specify it with -d flag (#1096)
1 parent 7e43276 commit 8b5b9d3

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

packages/cubejs-cli/cubejsCli.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ const os = require('os');
1111
const chalk = require('chalk');
1212
const spawn = require('cross-spawn');
1313
const crypto = require('crypto');
14+
const inquirer = require('inquirer');
1415

1516
const Config = require('./Config');
1617
const templates = require('./templates');
@@ -52,15 +53,9 @@ const logStage = (stage) => {
5253
const createApp = async (projectName, options) => {
5354
const template = options.template || 'express';
5455
const createAppOptions = { projectName, dbType: options.dbType, template };
56+
5557
event('Create App', createAppOptions);
56-
if (!options.dbType) {
57-
await displayError([
58-
'You must pass an application name and a database type (-d).',
59-
'',
60-
'Example: ',
61-
' $ cubejs create hello-world -d postgres'
62-
], createAppOptions);
63-
}
58+
6459
if (await fs.pathExists(projectName)) {
6560
await displayError(
6661
`We cannot create a project called ${chalk.green(
@@ -91,6 +86,18 @@ const createApp = async (projectName, options) => {
9186
logStage('Installing server dependencies');
9287
await npmInstall(['@cubejs-backend/server']);
9388

89+
if (!options.dbType) {
90+
const Drivers = await requireFromPackage('@cubejs-backend/server-core/core/DriverDependencies.js');
91+
const prompt = await inquirer.prompt([{
92+
type: 'list',
93+
name: 'dbType',
94+
message: 'Select database',
95+
choices: Object.keys(Drivers)
96+
}]);
97+
98+
options.dbType = prompt.dbType;
99+
}
100+
94101
logStage('Installing DB driver dependencies');
95102
const CubejsServer = await requireFromPackage('@cubejs-backend/server');
96103
let driverDependencies = CubejsServer.driverDependencies(options.dbType);

0 commit comments

Comments
 (0)