Files
timelapse-backend/src/database/connection.js
Kerboul 4513af3aa0
All checks were successful
SSH Backend Deploy / ssh-deploy (push) Successful in 1m51s
feat(database): Implement DatabaseManager for managing database structure and initialization
feat(routes): Add camera, image, measurement, project, and video routes with Swagger documentation

feat(services): Create storageService and videoService for file management and video processing

fix(errorHandler): Enhance error handling with standardized responses and database operation wrappers
2025-04-27 01:02:33 +02:00

44 lines
1.1 KiB
JavaScript

// src/database/connection.js
const { Client } = require('pg');
const config = require('../config');
// Création du client PostgreSQL avec la configuration centralisée
const client = new Client({
host: config.database.host,
port: config.database.port,
user: config.database.user,
password: config.database.password,
database: config.database.database
});
let isConnecting = false;
/**
* Initialise la connexion à la base de données
* Réessaie automatiquement si la connexion échoue
*/
function initDatabase() {
if (isConnecting) {
console.log('[DB] Tentative de connexion déjà en cours, ignorer...');
return;
}
console.log('[DB] Initialisation de la connexion à PostgreSQL...');
isConnecting = true;
client.connect(err => {
isConnecting = false;
if (err) {
console.error('[DB] Erreur de connexion à la base de données:', err);
setTimeout(initDatabase, config.database.reconnectInterval);
} else {
console.log('[DB] Connecté à la base de données PostgreSQL.');
}
});
}
// Initialise la connexion lors de l'importation de ce module
initDatabase();
module.exports = client;