pawa-user
Version:
A user management service for Cosmo Pawa, handling authentication and authorization.
40 lines (28 loc) • 959 B
JavaScript
const { Sequelize } = require("sequelize");
let sequelizeInstance;
const initializeDatabase = (dbConfig) => {
if (sequelizeInstance) {
return { sequelize: sequelizeInstance };
}
sequelizeInstance = new Sequelize(dbConfig.DB_NAME, dbConfig.DB_USER, dbConfig.DB_PASSWORD, {
host: dbConfig.DB_HOST,
port: dbConfig.DB_PORT || 5432,
dialect: dbConfig.DB_DIALECT || "postgres",
logging: false,
});
return { sequelize: sequelizeInstance };
};
const connectDB = async () => {
if (!sequelizeInstance) {
throw new Error("Database not initialized. Call initializeDatabase first.");
}
try {
await sequelizeInstance.authenticate();
await sequelizeInstance.sync({ alter: true });
console.log("Database connected and synchronized successfully.");
} catch (error) {
console.error("Unable to connect to the database:", error);
process.exit(1);
}
};
module.exports = { initializeDatabase, connectDB };