57 lines
1.8 KiB
JavaScript
Raw Normal View History

'use strict';
// Node.js core.
const execSync = require('child_process').execSync;
const path = require('path');
// Public node modules
const inquirer = require('inquirer');
module.exports = (scope, success, error) => {
const knex = require(path.resolve(`${scope.tmpPath}/node_modules/knex`))({
client: scope.client.module,
connection: Object.assign({}, scope.database.settings, {
user: scope.database.settings.username
2018-01-10 18:08:43 +01:00
})
});
knex.raw('select 1+1 as result').then(() => {
knex.raw(scope.client.database === 'postgres' ? "SELECT tablename FROM pg_tables WHERE schemaname='public'" : 'SELECT * FROM information_schema.tables').then((tables) => {
knex.destroy();
const next = () => {
execSync(`rm -r "${scope.tmpPath}"`);
success();
};
if (tables.rows && tables.rows.length !== 0) {
2018-06-22 15:25:15 +02:00
console.log('🤔 It seems that your database is not empty. Be aware that Strapi is going to automatically creates tables & columns, and might update columns which can corrupt data or cause data loss.');
inquirer.prompt([{
type: 'confirm',
name: 'confirm',
message: `Are you sure you want to continue with the ${scope.database.settings.database} database:`,
}])
2018-05-16 12:07:02 +02:00
.then(({confirm}) => {
if (confirm) {
next();
} else {
error();
}
});
} else {
next();
}
});
})
2018-05-16 12:07:02 +02:00
.catch((err) => {
if (err.sql) {
2018-06-22 15:25:15 +02:00
console.log('⚠️ Server connection has failed! Make sure your database server is running.');
2018-05-16 12:07:02 +02:00
} else {
2018-06-22 15:25:15 +02:00
console.log(`⚠️ Database connection has failed! Make sure your "${scope.database.settings.database}" database exist.`);
2018-05-16 12:07:02 +02:00
}
error();
});
};