diff --git a/api/src/cli/commands/start.ts b/api/src/cli/commands/start.ts index f6fef91a43..6c01d16a30 100644 --- a/api/src/cli/commands/start.ts +++ b/api/src/cli/commands/start.ts @@ -1,11 +1,13 @@ +import knex from 'knex'; import logger from '../../logger'; import { Express } from 'express'; export default async function start() { const { default: env } = require('../../env'); - const { validateDBConnection } = require('../../database'); + const database = require('../../database'); + const connection = database.default as knex; - await validateDBConnection(); + await database.validateDBConnection(); const app: Express = require('../../app').default; @@ -20,10 +22,25 @@ export default async function start() { process.on(signal, () => server.close((err) => { if (err) { - logger.error(err.message, { err }); - return; + logger.error(`Failed to close server: ${err.message}`, { + err, + }); + process.exit(1); } logger.info('Server stopped.'); + + connection + .destroy() + .then(() => { + logger.info('Database connection stopped.'); + process.exit(0); + }) + .catch((err) => { + logger.info(`Failed to destroy database connections: ${err.message}`, { + err, + }); + process.exit(1); + }); }) ); });