2018-01-10 15:31:54 +01:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
// Node.js core.
|
|
|
|
const execSync = require('child_process').execSync;
|
2018-01-11 13:22:49 +01:00
|
|
|
const path = require('path');
|
2018-01-10 15:31:54 +01:00
|
|
|
|
|
|
|
// Logger.
|
|
|
|
const logger = require('strapi-utils').logger;
|
|
|
|
|
|
|
|
module.exports = (scope, success, error) => {
|
2018-02-12 19:14:36 +01:00
|
|
|
const Mongoose = require(path.resolve(`${scope.tmpPath}/node_modules/mongoose`));
|
2018-02-02 18:27:03 +01:00
|
|
|
|
2018-04-24 16:38:19 +02:00
|
|
|
const { username, password } = scope.database.settings;
|
|
|
|
const { authenticationDatabase, ssl } = scope.database.options;
|
|
|
|
|
|
|
|
const connectOptions = {};
|
|
|
|
|
2018-01-23 07:26:00 +01:00
|
|
|
if (username) {
|
2018-04-24 16:38:19 +02:00
|
|
|
connectOptions.user = username;
|
|
|
|
|
2018-01-23 07:26:00 +01:00
|
|
|
if (password) {
|
2018-04-24 16:38:19 +02:00
|
|
|
connectOptions.pass = password;
|
2018-01-23 07:26:00 +01:00
|
|
|
}
|
2018-01-18 23:37:16 +01:00
|
|
|
}
|
2018-04-24 16:38:19 +02:00
|
|
|
|
2018-03-08 15:51:03 +01:00
|
|
|
if (authenticationDatabase) {
|
|
|
|
connectOptions.authSource = authenticationDatabase;
|
|
|
|
}
|
2018-04-24 16:38:19 +02:00
|
|
|
|
|
|
|
connectOptions.ssl = ssl ? true : false;
|
|
|
|
|
2018-01-18 23:37:16 +01:00
|
|
|
Mongoose.connect(`mongodb://${scope.database.settings.host}:${scope.database.settings.port}/${scope.database.settings.database}`, connectOptions, function (err) {
|
2018-01-10 15:31:54 +01:00
|
|
|
if (err) {
|
2018-01-10 18:08:43 +01:00
|
|
|
logger.warn('Database connection has failed! Make sure your database is running.');
|
2018-01-10 15:31:54 +01:00
|
|
|
return error();
|
|
|
|
}
|
|
|
|
|
2018-01-10 18:08:43 +01:00
|
|
|
logger.info('The app has been connected to the database successfully!');
|
2018-01-10 15:31:54 +01:00
|
|
|
|
|
|
|
Mongoose.connection.close();
|
|
|
|
|
2018-03-18 13:29:49 +01:00
|
|
|
execSync(`rm -r "${scope.tmpPath}"`);
|
2018-01-10 15:31:54 +01:00
|
|
|
|
|
|
|
logger.info('Copying the dashboard...');
|
|
|
|
|
|
|
|
success();
|
|
|
|
});
|
|
|
|
};
|