Ajout connexion BDD

This commit is contained in:
raveline
2026-04-08 16:25:58 +02:00
parent 30da3480b4
commit 53e8423012
4 changed files with 737 additions and 66 deletions

View File

@@ -1,11 +1,11 @@
version: '3.8'
services: services:
# 1. Base de données : PostgreSQL # 1. Base de données : PostgreSQL
db: db:
image: postgres:18-alpine image: postgres:18-alpine
container_name: gim_db container_name: gim_db
restart: unless-stopped restart: unless-stopped
ports:
- "5432:5432"
environment: environment:
POSTGRES_USER: ${POSTGRES_USER:-gim_db_admin} POSTGRES_USER: ${POSTGRES_USER:-gim_db_admin}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-gim_db_password} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-gim_db_password}
@@ -56,7 +56,7 @@ services:
# Définition du réseau virtuel privé pour isoler les conteneurs # Définition du réseau virtuel privé pour isoler les conteneurs
networks: networks:
asso_network: gim_network:
driver: bridge driver: bridge
# Définition du volume physique sur le serveur pour la base de données # Définition du volume physique sur le serveur pour la base de données

761
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -21,10 +21,14 @@
}, },
"dependencies": { "dependencies": {
"@nestjs/common": "^11.0.1", "@nestjs/common": "^11.0.1",
"@nestjs/config": "^4.0.3",
"@nestjs/core": "^11.0.1", "@nestjs/core": "^11.0.1",
"@nestjs/platform-express": "^11.0.1", "@nestjs/platform-express": "^11.0.1",
"@nestjs/typeorm": "^11.0.1",
"pg": "^8.20.0",
"reflect-metadata": "^0.2.2", "reflect-metadata": "^0.2.2",
"rxjs": "^7.8.1" "rxjs": "^7.8.1",
"typeorm": "^0.3.28"
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "^3.2.0", "@eslint/eslintrc": "^3.2.0",

View File

@@ -1,9 +1,37 @@
import { Module } from '@nestjs/common'; import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import { AppController } from './app.controller'; import { AppController } from './app.controller';
import { AppService } from './app.service'; import { AppService } from './app.service';
@Module({ @Module({
imports: [], imports: [
// Fichier .env
ConfigModule.forRoot({
isGlobal: true, // Rend les variables dispo partout dans le backend
envFilePath: '../../.env',
}),
// Connexion BDD
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: (configService: ConfigService) => ({
type: 'postgres',
host: configService.get<string>('DB_HOST'),
port: 5432,
username: configService.get<string>('POSTGRES_USER'),
password: configService.get<string>('POSTGRES_PASSWORD'),
database: configService.get<string>('POSTGRES_DB'),
entities: [__dirname + '/**/*.entity{.ts,.js}'],
// ATTENTION : 'synchronize: true' crée/modifie tes tables automatiquement en dev.
// À passer ABSOLUMENT à 'false' quand tu seras en production (on utilisera des migrations).
synchronize: true,
}),
}),
],
controllers: [AppController], controllers: [AppController],
providers: [AppService], providers: [AppService],
}) })