기존에 작업하던 방식은 마이그레이션으로 데이터베이스와 테이블들을 만들고 모델로 컬럼들만 수정해주는 방식이였다
이 방식이 더 안정하다고 생각이 들긴 하지만 다른 방식도 도전 !
model 파일과 relation 파일만 이용해서 작업하기 !
init.js 파일에 이렇게 추가 !
// Sequelize로 데이터베이스와 모델을 동기화하는 메서드
sequelizeSync = () => {
// sequelize.sync() 메서드를 사용하여 데이터베이스와 모델을 동기화 (alter 옵션을 통해 스키마를 변경)
// 이 부분이 마이그레이션을 안해도 되는 이유였음
return sequelize.sync({ alter: true });
};
이 옵션에 대해서 시퀄라이즈 공식문서의 내용은 이렇다 !
- User.sync()- 존재하지 않는 경우 테이블을 생성합니다(이미 존재하는 경우 아무 작업도 수행하지 않음).
- User.sync({ force: true })- 이것은 테이블을 생성하고 이미 존재하는 경우 먼저 삭제합니다.
- User.sync({ alter: true })- 이것은 데이터베이스에 있는 테이블의 현재 상태(어떤 열이 있는지, 데이터 유형은 무엇인지 등)를 확인한 다음 모델과 일치하도록 테이블에서 필요한 변경을 수행합니다.
첨부 : https://sequelize.org/docs/v6/core-concepts/model-basics/