Files
WhatToWatch/server/db/scripts/setup.js
2019-02-24 13:15:42 -06:00

62 lines
1.6 KiB
JavaScript

/* eslint-disable no-console */
const {exec} = require('child_process');
const configs = require('../config/config');
const mode = (
process.argv.find(arg => /production$|development$/.test(arg)) ||
'development'
).replace(/[^\w]/g, '');
const {username, database, host} = configs[mode];
if (!username || !database || !host) {
console.error('Please ensure all required parameters are supplied:');
console.error('username:', username);
console.error('database:', database);
console.error('host:', host);
process.exit(1);
}
console.log(username, database, host);
exec(
`createdb -U ${username} -h ${host} ${database}`,
(err, stdout, stderr) => {
if (err) {
console.error('Error creating DB.');
console.error(err || stderr);
process.exit(1);
}
console.log('Created DB.');
exec(
`./node_modules/.bin/sequelize db:migrate --env ${mode}`,
(err2, stdout2) => {
if (err2) {
console.error('Error running migrations.');
console.error(err2);
console.error('Dropping DB');
exec(
`dropdb -U ${username} -h ${host} ${database}`,
(err3, stdout3, stderr3) => {
if (err2) {
console.error('Error dropping DB');
console.error(err3 || stderr3);
process.exit(1);
}
console.info('Dropped DB.');
process.exit(0);
},
);
} else {
console.log(stdout2);
console.log('Migrations complete.');
console.log('Process finished. Exiting.');
process.exit(0);
}
},
);
},
);