Project/codestates-first-project

5일차 / MVC 모델

fullfish 2022. 4. 9. 01:07

진행

MVC모델로 데이터베이스 기초만듦 (Model, View, Controller / 특정 라이브러리아닌 아이디어의 일종)

mvc 모델

Migrations을 사용했음

npm install --save-dev sequelize-cli // Sequelize CLI 설치 (이것을 사용하려면 추가 프로그램을 깔아야하는데 그중 하나가 mysql2)
npx sequelize-cli init // 빈프로젝트 만들기

 

config.json 설정해주기

"timezone": "+09:00", // 한국시간으로 맞춰줌
"dialectOptions": { 
  charset: "utf8mb4", 
  dateStrings: true, 
  typeCast: true 
} // 날짜의 경우 문자열로 타입 변경 처리 (utf8는 가변 3btye를 쓰지만utf8mb4는 4byte를 써서 이모지도 테이블에 넣기 가능)

 

명령어들

npx sequelize-cli model:generate --name User --attributes name:string,email:string // 모델과 마이그레이션 만들기 예시
npx sequelize-cli db:migrate // 마이그레이션 실행
npx sequelize-cli db:migrate:undo // 마이그레이션 되돌리기 //:all 붙이면 모두 실행 취소
npx sequelize-cli seed:generate --name demo-user // 시드 만들기
npx sequelize-cli db:seed:all // 시드 모두 실행

 

마이그레이션 이름을 단수로 만들어도 모델에서 테이블 생성시 자동으로 복수형으로 바뀜단수형을 많이 쓰는 추세인데 그냥 단수로 바꾸기만하면 찾지 못하고모델에 freezeTableName:true를 써서 자동복수형을 끄거나tableName:<단수형이름>으로 직접 지정해주면 된다