Login - 01. Project setup
yarn add @nestjs/typeorm typeorm mysql2
docker-compose.yml 설정
// 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:
docker-compose up -d
왜 굳이 Docker 를 사용하는가?
기존 로컬 데이터베이스에 프로젝트가 여러개 존재할 때 각 프로젝트를 분리할 수 있음
DB 연결
// 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;
// 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 {}