PostgreSQL이란 객체 관계형 데이터베이스(ORDBMS) 중 하나로 무료로 제공되고 있는 데이터베이스
즉, 기본적으로는 관계형 데이터베이스(RDBMS)이지만 객체 데이터베이스와 연관되는 기능(ex:테이블 상속 및 함수 오버 로딩) 포함
1985년 개발을 시작해서 1996년에 첫 출시 / Oracle DB와 유사함
2022년 12월 기준 전 세계 DB 순위 4위
ORDBMS(Object-Relational DataBase Management System)는 객체 지향 데이터베이스 모델을 가진 관계형 데이터베이스 관리 시스템
RDBMS와는 데이터의 저장 및 접근 방법에 대한 관점의 차이가 있다.
ORDBMS는 데이터가 객체로 저장된 것처럼 작동함
장점
단점
설치방법 참고하기
참고자료2
(참고로 나는 13버전을 설치했다)
비밀번호는 입력이 안된 것 처럼 보여도 걱정하지 말고 엔터를 누르자!
그 뒤에 나오는 stack builder는 설치 할 필요 없다
python 연동하기!1
python 연동하기!2
nest 연동하기!1
nest 연동하기!2
나의 최종 코드
// app.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ConfigValidator } from '../config/db.config';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { AuthModule } from './auth/auth.module';
import { ContentsModule } from './contents/contents.module';
@Module({
imports: [TypeOrmModule.forRoot(ConfigValidator), AuthModule, ContentsModule],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
// config/db.config.ts
import { TypeOrmModuleOptions } from '@nestjs/typeorm';
import 'dotenv/config';
export const ConfigValidator: TypeOrmModuleOptions = {
type: 'postgres',
host: process.env.PG_HOST,
port: parseInt(process.env.PG_PORT),
username: process.env.PG_USERNAME,
password: process.env.PG_PASSWORD,
database: process.env.PG_DB,
entities: [__dirname + '/../**/*.entity.{js,ts}'],
synchronize: true,
};
테이블생성, 삭제 등의 명령어 참고
예시)
CREATE TABLE "User" (
"id" SERIAL PRIMARY KEY,
"email" VARCHAR(200) NOT NULL,
"name" VARCHAR(200) NOT NULL,
"password" VARCHAR(200) NOT NULL,
"level" INT,
"created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE "File" (
"id" SERIAL PRIMARY KEY,
"original_name" VARCHAR(200) NOT NULL,
"name" VARCHAR(200) NOT NULL,
"length" INT,
"topic" VARCHAR(200),
"sentence" TEXT,
"created_at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
);
잘 봤습니다. 좋은 글 감사합니다.