48 lines
1.8 KiB
JavaScript
48 lines
1.8 KiB
JavaScript
require('dotenv').config();
|
|
const { Pool } = require('pg');
|
|
|
|
// Проверяем наличие строки подключения
|
|
if (!process.env.DATABASE_QUEST_NEW_QUESTS) {
|
|
console.error('❌ Ошибка: DATABASE_QUEST_NEW_QUESTS не задана в .env файле');
|
|
throw new Error('DATABASE_QUEST_NEW_QUESTS environment variable is required');
|
|
}
|
|
|
|
const connectionStr = process.env.DATABASE_QUEST_NEW_QUESTS;
|
|
console.log('Подключение к базе данных new_quests');
|
|
|
|
// Проверяем, содержит ли строка подключения пароль
|
|
if (!connectionStr.includes(':')) {
|
|
console.error('❌ Ошибка: Строка подключения не содержит пароль');
|
|
throw new Error('Database connection string must include password');
|
|
}
|
|
|
|
const new_quest_Base = new Pool({
|
|
connectionString: connectionStr,
|
|
ssl: false
|
|
});
|
|
|
|
// Обработчики событий
|
|
new_quest_Base.on('error', (err) => {
|
|
console.error('❌ Ошибка подключения к базе данных new_quests:', err.message);
|
|
});
|
|
|
|
new_quest_Base.on('connect', () => {
|
|
console.log('✅ Успешное подключение к базе данных new_quests');
|
|
});
|
|
|
|
// Функция для проверки подключения
|
|
new_quest_Base.testConnection = async () => {
|
|
try {
|
|
await new_quest_Base.query('SELECT 1 as test');
|
|
console.log('✅ Тест подключения к new_quests успешен');
|
|
return true;
|
|
} catch (error) {
|
|
console.error('❌ Тест подключения к new_quests failed:', error.message);
|
|
return false;
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
query: (text, params) => new_quest_Base.query(text, params),
|
|
testConnection: () => new_quest_Base.testConnection()
|
|
}; |