diff --git a/server.ts b/server.ts index 1a0e4a7..995a339 100644 --- a/server.ts +++ b/server.ts @@ -4,6 +4,7 @@ import * as http from 'http'; import app from './app'; import { version } from './package.json'; import ErrnoException = NodeJS.ErrnoException; +import checkDatabaseConnection from './utils/prisma'; // Initialise globals global.config = config; @@ -26,6 +27,11 @@ server.listen(port); server.on('error', onError); server.on('listening', onListening); +/** + * Checks if DB is connected + */ +void checkDatabaseConnection(); + /** * Event listener for HTTP server "error" event. */ diff --git a/utils/prisma.ts b/utils/prisma.ts new file mode 100644 index 0000000..cbd12db --- /dev/null +++ b/utils/prisma.ts @@ -0,0 +1,15 @@ +import prisma from '../prisma/prisma'; + +async function checkDatabaseConnection(): Promise { + try { + await prisma.$connect(); + logger.error('Database connected.'); + } catch (error) { + logger.error('Database connection failed:', error); + process.exit(1); + } finally { + await prisma.$disconnect(); + } +} + +export default checkDatabaseConnection;