From f434e9191c73f9922937e0d362f1095fe331025c Mon Sep 17 00:00:00 2001 From: nicekid1 <86746988+nicekid1@users.noreply.github.com> Date: Tue, 31 Dec 2024 09:12:24 +0330 Subject: [PATCH] Setup PostgreSQL database connection and test connectivity --- package-lock.json | 21 +++++++++++++++++++++ package.json | 1 + src/app.module.ts | 18 ++++++++++++++---- src/config/database.config.ts | 14 ++++++++++++++ 4 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/config/database.config.ts diff --git a/package-lock.json b/package-lock.json index aa3aae0..2649b8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@nestjs/common": "^10.0.0", "@nestjs/config": "^3.3.0", "@nestjs/core": "^10.0.0", + "@nestjs/mapped-types": "*", "@nestjs/platform-express": "^10.0.0", "@nestjs/sequelize": "^10.0.1", "pg": "^8.13.1", @@ -1695,6 +1696,26 @@ } } }, + "node_modules/@nestjs/mapped-types": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-2.0.6.tgz", + "integrity": "sha512-84ze+CPfp1OWdpRi1/lOu59hOhTz38eVzJvRKrg9ykRFwDz+XleKfMsG0gUqNZYFa6v53XYzeD+xItt8uDW7NQ==", + "license": "MIT", + "peerDependencies": { + "@nestjs/common": "^8.0.0 || ^9.0.0 || ^10.0.0", + "class-transformer": "^0.4.0 || ^0.5.0", + "class-validator": "^0.13.0 || ^0.14.0", + "reflect-metadata": "^0.1.12 || ^0.2.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, "node_modules/@nestjs/platform-express": { "version": "10.4.15", "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-10.4.15.tgz", diff --git a/package.json b/package.json index 837aeee..5ac9bbd 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@nestjs/common": "^10.0.0", "@nestjs/config": "^3.3.0", "@nestjs/core": "^10.0.0", + "@nestjs/mapped-types": "*", "@nestjs/platform-express": "^10.0.0", "@nestjs/sequelize": "^10.0.1", "pg": "^8.13.1", diff --git a/src/app.module.ts b/src/app.module.ts index 8662803..9119a71 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,9 +1,19 @@ -import { Module } from '@nestjs/common'; -import { AppController } from './app.controller'; -import { AppService } from './app.service'; +import { Module } from "@nestjs/common"; +import { AppController } from "./app.controller"; +import { AppService } from "./app.service"; +import { ConfigModule } from "@nestjs/config"; +import { SampleModule } from './sample/sample.module'; +import { SequelizeModule } from "@nestjs/sequelize"; +import { databaseConfig } from "./config/database.config"; @Module({ - imports: [], + imports: [ + ConfigModule.forRoot({ + isGlobal: true, + }), + SequelizeModule.forRoot(databaseConfig), + SampleModule, + ], controllers: [AppController], providers: [AppService], }) diff --git a/src/config/database.config.ts b/src/config/database.config.ts new file mode 100644 index 0000000..4f1e0a1 --- /dev/null +++ b/src/config/database.config.ts @@ -0,0 +1,14 @@ +import { SequelizeModuleOptions } from '@nestjs/sequelize'; +import * as dotenv from "dotenv"; +dotenv.config(); + +export const databaseConfig: SequelizeModuleOptions = { + dialect: 'postgres', + host: process.env.DATABASE_HOST || 'localhost', + port: +process.env.DATABASE_PORT || 5432, + username: process.env.DATABASE_USER || 'postgres', + password: process.env.DATABASE_PASSWORD || 'password', + database: process.env.DATABASE_NAME || 'ecommerce', + autoLoadModels: true, + synchronize: true, +};