sequelize cli 사용해보기

마데슾 : My Dev Space·2020년 5월 21일
0
post-thumbnail
  1. userEmail, FirstName, LastName, 직책 컬럼 생성
  2. nickname 데이터 유지 된 상태로 컬럼명 변경(ex) alias)
  3. 새로운 소속 테이블 생성(새로 만들어진 테이블은 소속명, 로고 이미지 src 컬럼을 가짐)
  4. 소속 테이블과 user 테이블은 M:N 관계(M:N 테이블 필요 - associate 사용)
    • 소속ID로 유저가 어디에 소속되는지(이력) 알 수 있어야함.
    • 해당 테이블은 유저가 해당 기관에 얼마나 있었는지 날짜를 알기 위해 시작년도(start year), 끝년도(endyear) 컬럼이 필요
    • ex) userId : 1, 소속id : 3, startyear: 2014, endyear: 2015
      userId: 1, 소속id: 2, startyear: 2015, endyear: 2016

1. 테이블 생성

node_modules/.bin/sequelize model:generate --name UserTest --attributes userEmail:string,firstName:string,lastName:string,email:string,department:string,position:string

igration model이 생성되었다.

migration 파일을 보면 updown으로 구분되어 각각 createTabledropTable을 해주는 코드를 볼 수 있다.
up에 작성된 코드는 마이그레이션을 할 때 실행되는 코드이고 down에 작성된 코드는 마이그레이션을 취소할 때 실행되는 코드입니다.

2. 마이그레이션 작업

./node_modules/.bin/sequelize db:migrate

2-1. 특정 마이그레션 파일만 실행

./node_modules/.bin/sequelize db:migrate --to change-name.js

3. 마이그레이션 취소

./node_modules/.bin/sequelize db:migrate:undo

3-1. 특정 마이그레이션 파일만 취소

./node_modules/.bin/sequelize db:migrate:undo --name 20180704124934-create-branch.js

4. Sequelize CLI Seed를 사용해 데이터 추가하기

아래와같이 명령어를 입력하면

./node_modules/.bin/sequelize seed:generate --name posthashtag

seeders폴더에 posthashtag seed 파일이 생긴다

시드 실행 명령어
./node_modules/.bin/sequelize db:seed:all

시드를 할때는 up에 있는 코드가 실행되고 시드를 취소할때는 down에 있는 코드가 실행된다.

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.bulkInsert(
      'posthashtag',
      [
        {
          hashtagid: '1',
          postid: '1',
          createdAt: '2020-05-22',
          updatedAt: '2020-05-22',
        },
        {
          hashtagid: '2',
          postid: '1',
          createdAt: '2020-05-22',
          updatedAt: '2020-05-22',
        },
        {
          hashtagid: '3',
          postid: '2',
          createdAt: '2020-05-22',
          updatedAt: '2020-05-22',
        },
        {
          hashtagid: '4',
          postid: '3',
          createdAt: '2020-05-22',
          updatedAt: '2020-05-22',
        },
      ],
      {}
    );
  },

  down: (queryInterface, Sequelize) => {
    return queryInterface.bulkDelete('posthashtag', null, {});
  },
};

5. seed undo

/node_modules/.bin/sequelize db:seed:undo:all

6. 특정 Seed 파일만 실행

./node_modules/.bin/sequelize db:seed --seed 20200521083150-UserTest.js

6. 특정 Seed 파일만 취소

./node_modules/.bin/sequelize db:seed:undo --seed 20200521083150-Users.js

참고블로그

학습 예정

  • multer(라이브러리)
  • 이미지, 파일 전송 => multi part form 사용
profile
👩🏻‍💻 🚀

0개의 댓글

관련 채용 정보