// import { MikroORM } from '@mikro-orm/mariadb' import { MikroORM } from '@mikro-orm/mysql' import { appLogger } from './logger' import config from '../../mikro-orm.config' /** * Singleton class for initializing and managing the database connection */ export class Database { private static instance: MikroORM | undefined private static async init(): Promise { try { return await MikroORM.init(config) } catch (error) { appLogger.error(`MikroORM connection failed: ${error}`) throw error } } public static async getInstance(): Promise { if (!Database.instance) { Database.instance = await Database.init() } return Database.instance } }