makecord-create
Version:
Create advanced Discord Bots with Makecord - Now with TypeScript support
59 lines (52 loc) • 1.62 kB
JavaScript
import { Sequelize } from 'sequelize';
import { config } from 'dotenv';
import chalk from 'chalk';
// Load environment variables
config();
// Database connection details
const DB_NAME = process.env.POSTGRES_DB || 'discord_bot';
const DB_USER = process.env.POSTGRES_USER || 'postgres';
const DB_PASSWORD = process.env.POSTGRES_PASSWORD || 'postgres';
const DB_HOST = process.env.POSTGRES_HOST || 'localhost';
const DB_PORT = process.env.POSTGRES_PORT || 5432;
// Create Sequelize instance
const sequelize = new Sequelize(DB_NAME, DB_USER, DB_PASSWORD, {
host: DB_HOST,
port: DB_PORT,
dialect: 'postgres',
logging: process.env.NODE_ENV === 'development' ? console.log : false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
});
/**
* Connect to PostgreSQL database
* @returns {Promise<void>}
*/
export async function connectToDatabase() {
try {
console.log(chalk.yellow('Connecting to PostgreSQL database...'));
await sequelize.authenticate();
console.log(chalk.green('PostgreSQL database connected successfully!'));
} catch (error) {
console.error(chalk.red('PostgreSQL database connection error:'), error.message);
process.exit(1);
}
}
/**
* Close PostgreSQL database connection
* @returns {Promise<void>}
*/
export async function closeDatabaseConnection() {
try {
await sequelize.close();
console.log(chalk.yellow('PostgreSQL database connection closed.'));
} catch (error) {
console.error(chalk.red('Error closing PostgreSQL database connection:'), error.message);
}
}
// Export sequelize for model creation
export { sequelize };