DB

Sequelize Migration안쓰고 모델로만 작업하기 !

혬00 2023. 8. 3. 23:47

기존에 작업하던 방식은 마이그레이션으로 데이터베이스와 테이블들을 만들고 모델로 컬럼들만 수정해주는 방식이였다

이 방식이 더 안정하다고 생각이 들긴 하지만 다른 방식도 도전 !

 

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/