docs.nestjs.com/techniques/database
docs.nestjs.com/recipes/sql-typeorm
공식 문서에서 typeORM + mysql 조합으로 예시를 들어주고 있으니 참고하셔야 합니다.
database 부분에서 TypeORM Integration을 꼼꼼히 읽읍시다.
why typeORM?
For integrating with SQL and NoSQL databases, Nest provides the @nestjs/typeorm package. Nest uses TypeORM because it's the most mature Object Relational Mapper (ORM) available for TypeScript. Since it's written in TypeScript, it integrates well with the Nest framework.
what else?
@nest/sequelize로 제공하고 있기는 하지만 ts로 작성하는데 typeORM을 안 쓸 이유가 없죠. 거죠 typeORM이 훨씬 편하기도 하구요. @nest/mongoose도 제공합니다. mongoDB을 사용하실 분은 이걸 사용하시면 되겠습니다.
Installation
yarn add @nestjs/typeorm typeorm mysql
appModule 부분에 다음과 같이 TypeORMModule을 세팅해주면 됩니다.
해당 옵션에 대해 알고 싶다면 TypeORM 공식 문서의 Connetion Option 부분을 참고합시다. 이 부분은 DB별로 다르니 문서를 참고해가며 합시다.
typeorm.io/#/connection-options
// eslint-disable-next-line @typescript-eslint/no-var-requires
require('dotenv').config();
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { TypeOrmModule } from '@nestjs/typeorm';
import { RestaurantsModule } from './restaurants/restaurants.module';
@Module({
imports: [
RestaurantsModule,
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: process.env.MYSQL_USERNAME,
password: process.env.MYSQL_PASSWORD,
database: 'ubereats',
entities: [],
synchronize: true, // Setting synchronize: true shouldn't be used in production
}),
GraphQLModule.forRoot({
autoSchemaFile: true, // in memory
debug: true,
playground: true,
}),
],
controllers: [],
providers: [],
})
export class AppModule {}
🚨 주의!
Setting synchronize: true shouldn't be used in production - otherwise you can lose production data.
'Node, Nest, Deno > 🦁 Nest - Series' 카테고리의 다른 글
Nest + gql + typeORM(@nestjs/typeorm) (3) Repository pattern, @InjectRepository (0) | 2020.11.21 |
---|---|
Nest + gql + typeORM(@nestjs/typeorm) (2) entity와 schema를 한 번에 작성하기 (0) | 2020.11.21 |
Nest + graphql (3) : Mutation, @ArgsType 과 Validation (0) | 2020.11.21 |
Nest + graphql (2) : ObjectType, Resolvers(Query, @Args) (0) | 2020.11.21 |
Nest + graphql (1) : code first (0) | 2020.11.20 |