Migration : 각 마이그레이션 파일은 일반적으로 테이블 생성 또는 수정, 열 추가 또는 제거, 테이블 간의 연결 정의와 같은 스키마에 대한 단일 논리적 변경 사항을 나타냄
sync() : 데이터베이스 스키마를 빠르게 설정하는 데 더 적합. 테이블이 존재하지 않는 경우 자동으로 데이터베이스 테이블을 생성하고 모델의 정의와 일치하도록 테이블을 수정
결론적으로 마이그레이션은 프로덕션 환경에서 복잡한 데이터베이스 스키마 변경, 데이터 변환 및 데이터 보존을 관리하기 위해 선호되는 접근 방식. sync()
메서드는 개발 중 또는 소규모 프로젝트에서 데이터베이스를 빠르게 설정하는 데 더 적합하지만 프로덕션 시나리오에서 강력한 스키마 관리에 필요한 기능과 제어가 부족하다.
프로젝트 시작 시 npm run dev로 시작하고 있음.
: npm run dev로 실행할 땐 package.json에 "scripts" 항목의 dev에 입력된 명령어를 실행
// package.json
"scripts": {
"dev": "nodemon --exec babel-node src/init.js", // 이 부분이 npm run dev할 때 적용 됨
"build": "babel src --out-dir dist --copy-files ",
"start": "node dist/init.js"
}
시퀄라이즈 설정 자체에서 그렇게 만든거라고 함. (조호영 튜터 님이 웬만하면 사람들이 많이 쓰니까 그렇게 두지 않았을까 라는 의견 제시해 주셔서 테이블은 복수명으로 사용 하겠음)
// init.js
sequelizeSync = () => {
return sequelize.sync({force : false});
};
// sequelize.js (시퀄라이즈를 처리하기 위한 페이지)
const sequelize = new Sequelize({
username: env.username,
port: env.mysqlport,
password: env.password,
database: env.database,
host: env.mysqlhost,
dialect: env.dialect,
**logging: false // 배포 환경에서는 쿼리 로그를 비활성화 한다.**
});
수동적으로 과제를 진행하지 말고 능동적으로, 이해하면서 프로젝트를 진행 하자!