Login - 01. Project setup

  1. yarn add @nestjs/typeorm typeorm mysql2

  2. docker-compose.yml 설정

    1.  // docker-compose-yml 
      
       version: '3.8'
      
        services:
          mysql:
            image: mysql:latest
            container_name: mysql_user-auth
            restart: always
            environment:
              MYSQL_ROOT_PASSWORD: root
              MYSQL_DATABASE: user-auth
            ports:
              - "3307:3306"
            volumes:
              - mysql_data:/var/lib/mysql
      
        volumes:
          mysql_data:
      
    2. docker-compose up -d

왜 굳이 Docker 를 사용하는가?

기존 로컬 데이터베이스에 프로젝트가 여러개 존재할 때 각 프로젝트를 분리할 수 있음

  1. DB 연결

    1.  // ormconfig.ts
      
       import { TypeOrmModuleOptions } from '@nestjs/typeorm';
      
       const ormConfig: TypeOrmModuleOptions = {
         type: 'mysql',
         host: 'localhost',
         port: 3307,
         username: 'root',
         password: 'root',
         database: 'local-test',
         entities: [__dirname + '/**/*.entity{.ts,.js}'],
         migrations: [__dirname + '/migrations/*{.ts,.js}'],
         synchronize: false,
       };
      
       export default ormConfig;
      
    2.  // app.module.ts
      
       import { Module } from '@nestjs/common';
       import { AppController } from './app.controller';
       import { AppService } from './app.service';
       import { TypeOrmModule } from '@nestjs/typeorm';
       import ormConfig from 'ormconfig';
      
       @Module({
         imports: [TypeOrmModule.forRootAsync({ useFactory: () => ormConfig })],
         controllers: [AppController],
         providers: [AppService],
       })
       export class AppModule {}