Sequelize 에서 특정 테이블들만 초기화시켜주기

버건디·2023년 12월 7일
0

Sequelize

목록 보기
1/1
post-thumbnail

프로젝트를 만들면서, Auth 부분의 로직을 계속 테스트하다보니 자연스럽게 테이블을 초기화해주어야했다.

하지만 Auth부분과는 상관없는 테이블도 동시에 초기화가 되다보니,

  1. 모든 테이블 초기화
  2. 초기화 되지 않아야할 테이블에 직접 db 주입

이런식의 흐름이 계속 이어졌다.

또 특정 테이블만 sync를 true를 해주어서 초기화해주려고하니 테이블간의 관계성때문에 계속 오류가 발생했다.

sequelize
  .query('SET FOREIGN_KEY_CHECKS = 0')
  .then(() => sequelize.query('TRUNCATE TABLE 테이블1'))
  .then(() => sequelize.query('TRUNCATE TABLE 테이블2'))
  .then(() => sequelize.query('TRUNCATE TABLE 테이블3'))
  .then(() => sequelize.query('TRUNCATE TABLE 테이블4'))
  .then(() => sequelize.query('SET FOREIGN_KEY_CHECKS = 1'))
  .then(() => sequelize.sync({ force: false }))
  .then(() => {
    console.log('데이터베이스 연결에 성공했어요!');
  })
  .catch((err) => {
    console.error(err);
  });

이런식으로 직접 쿼리문을 작성해서 테이블 간의 관계성을 아예 다 끊어버리고, 초기화하고 싶은 테이블들만 초기화 후에 다시 관계성을 설정을 해주면 된다.

❗️ 운영환경에서는 해제해주어야한다 ❗️

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글