프로젝트를 만들면서, Auth 부분의 로직을 계속 테스트하다보니 자연스럽게 테이블을 초기화해주어야했다.
하지만 Auth부분과는 상관없는 테이블도 동시에 초기화가 되다보니,
이런식의 흐름이 계속 이어졌다.
또 특정 테이블만 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);
});
이런식으로 직접 쿼리문을 작성해서 테이블 간의 관계성을 아예 다 끊어버리고, 초기화하고 싶은 테이블들만 초기화 후에 다시 관계성을 설정을 해주면 된다.
❗️ 운영환경에서는 해제해주어야한다 ❗️