boostcamp-2020 / Project16-F-Account-Book

12 stars 1 forks source link

feature:typeorm dummy data생성 #38

Closed dhyun2 closed 3 years ago

dhyun2 commented 3 years ago

typeorm migrations를 활용해서 dummy data를 생성한다.

Issue Number

Close #20

변경사항

새로운 기능

typeorm 의 migrations와 seed를 활용하여 dummyData를 save 하였습니다.

데이터 베이스 핸들링을 편하게 하기 위하여 마이그레이션 이용,

마이그레이션 환경 설정

{ 
  "type": "mysql",
   "host": "localhost", 
  "port": 3306,
   "username": "test",
   "password": "test",
   "database": "test",
   "entities": ["entity/*.js"],
   "migrations": ["migration/*.js"],
     "cli": {
         "migrationsDir": "migration" 
      }
 }

출처: https://blog.shovelman.dev/965 [한글로는 삽잡이, 영어로는 shovelman]

마이그레이션 생성법 typeorm migration:create -n 마이그레이션 이름

마이그레이션 파일

import {MigrationInterface, QueryRunner} from "typeorm"; 
import { * } from "../seed/*.seed";

export class PostRefactoringTIMESTAMP implements MigrationInterface {
  async up(queryRunner: QueryRunner) : Promise<any> {

  }

  async down(queryRunner: QueryRunner) : Promise<any> {

  } 
}

예시 async up(queryRunner: QueryRunner) : Promise { await queryRunner.query('ALTER TABLE User Add ......); await getRepository('User').save(UserSeed); }

마이그레이션 실행 typeorm migration:run

마이그레이션 되돌리기 typeorm migration:revert

시더 파일 예시

export const UserSeed = [
    {
      name: '15min@mail.com',
      social_id: '15min',
      social_ype: 'google',
    },
  ];

작업 유형

체크리스트

@boostcamp-2020/accountbook_mentor

changheedev commented 3 years ago

더미데이터 삽입을 Migration 을 이용해서 구현을 하셨는데 일반적으로 Migration은 테이블 스키마의 변경을 관리하는 용도로 사용하는 것 같습니다. 더미 데이터를 관리하는 용도로도 맞을지 고민되네요.