mirror of
https://github.com/strapi/strapi.git
synced 2025-08-21 23:28:58 +00:00
Install db dependencies on app creation
This commit is contained in:
parent
a892a6943d
commit
23ee0b25bf
@ -40,7 +40,8 @@ module.exports = scope => {
|
||||
'dependencies': {
|
||||
'lodash': '4.x.x',
|
||||
'strapi': getDependencyVersion(cliPkg, 'strapi'),
|
||||
'strapi-mongoose': getDependencyVersion(cliPkg, 'strapi')
|
||||
[scope.client.connector]: getDependencyVersion(cliPkg, 'strapi'),
|
||||
[scope.client.module]: scope.client.version
|
||||
},
|
||||
'author': {
|
||||
'name': scope.author || 'A Strapi developer',
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
// Node.js core.
|
||||
const path = require('path');
|
||||
const exec = require('child_process').exec;
|
||||
const execSync = require('child_process').execSync;
|
||||
|
||||
// Public node modules.
|
||||
const _ = require('lodash');
|
||||
@ -47,6 +49,7 @@ module.exports = (scope, cb) => {
|
||||
}
|
||||
|
||||
logger.info('Let\s configurate the connection to your database:');
|
||||
let formSteps = new Promise(resolve => {
|
||||
inquirer
|
||||
.prompt([
|
||||
{
|
||||
@ -66,32 +69,55 @@ module.exports = (scope, cb) => {
|
||||
name: 'Postgres',
|
||||
value: {
|
||||
database: 'postgres',
|
||||
connector: 'strapi-bookshelf'
|
||||
connector: 'strapi-bookshelf',
|
||||
module: 'pg'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'MySQL',
|
||||
value: {
|
||||
database: 'mysql',
|
||||
connector: 'strapi-bookshelf'
|
||||
connector: 'strapi-bookshelf',
|
||||
module: 'mysql'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'Sqlite3',
|
||||
value: {
|
||||
database: 'sqlite3',
|
||||
connector: 'strapi-bookshelf'
|
||||
connector: 'strapi-bookshelf',
|
||||
module: 'sqlite3'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'Redis',
|
||||
value: {
|
||||
database: 'redis',
|
||||
connector: 'strapi-bookshelf'
|
||||
connector: 'strapi-redis'
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
])
|
||||
.then(answers => {
|
||||
scope.client = answers.client;
|
||||
scope.database = {
|
||||
connector: answers.client.connector,
|
||||
settings: {
|
||||
client: answers.client.database
|
||||
},
|
||||
options: {}
|
||||
};
|
||||
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
||||
formSteps = formSteps.then(() => {
|
||||
const asyncFn = [
|
||||
new Promise(resolve => {
|
||||
inquirer
|
||||
.prompt([
|
||||
{
|
||||
type: 'input',
|
||||
prefix: '',
|
||||
@ -120,7 +146,7 @@ module.exports = (scope, cb) => {
|
||||
redis: 6379
|
||||
};
|
||||
|
||||
return ports[answers.client.database];
|
||||
return ports[scope.client.database];
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -137,22 +163,40 @@ module.exports = (scope, cb) => {
|
||||
}
|
||||
])
|
||||
.then(answers => {
|
||||
scope.database = {
|
||||
connector: answers.client.connector,
|
||||
settings: {
|
||||
client: answers.client.database,
|
||||
host: answers.host,
|
||||
port: answers.port,
|
||||
database: answers.name,
|
||||
username: answers.username,
|
||||
password: answers.password
|
||||
},
|
||||
options: {}
|
||||
};
|
||||
scope.database.host = answers.host;
|
||||
scope.database.port = answers.port;
|
||||
scope.database.database = answers.name;
|
||||
scope.database.username = answers.username;
|
||||
scope.database.password = answers.password;
|
||||
|
||||
resolve();
|
||||
});
|
||||
}),
|
||||
new Promise(resolve => {
|
||||
let cmd = `npm install --prefix ${scope.rootPath}_ ${scope.client.connector}@alpha`;
|
||||
if (scope.client.module) {
|
||||
cmd += ` ${scope.client.module}`;
|
||||
}
|
||||
|
||||
exec(cmd, () => {
|
||||
if (scope.client.module) {
|
||||
const lock = require(`${scope.rootPath}_/package-lock.json`);
|
||||
scope.client.version = lock.dependencies[scope.client.module].version;
|
||||
}
|
||||
|
||||
resolve();
|
||||
});
|
||||
}),
|
||||
];
|
||||
|
||||
Promise.all(asyncFn)
|
||||
.then(() => {
|
||||
execSync(`rm -r ${scope.rootPath}_`);
|
||||
|
||||
logger.info('Copying the dashboard...');
|
||||
|
||||
// Trigger callback with no error to proceed.
|
||||
return cb.success();
|
||||
cb.success();
|
||||
});
|
||||
});
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user