2023-08-03 TIL ( 키오스크 과제 진행 )

오준석·2023년 8월 4일
0

TIL (Today I Learned)

목록 보기
58/105

TIL

<키오스크 과제 진행>

간단 개념

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"
 }

< 시퀄라이즈 이용 시 모델명을 단수로 바꿔도 복수명으로 나오는 이유>

시퀄라이즈 설정 자체에서 그렇게 만든거라고 함. (조호영 튜터 님이 웬만하면 사람들이 많이 쓰니까 그렇게 두지 않았을까 라는 의견 제시해 주셔서 테이블은 복수명으로 사용 하겠음)


< 키오스크 진행 중 이슈 >

  1. 저장할 때 마다 DB가 다시 만들어지는데 그렇게 안 되게 어캐 하나유..
// init.js
sequelizeSync = () => {
    return sequelize.sync({force : false});
  };
  1. 서버 시작 때마다 테이블에 관련 로그가 다량으로 찍힌다.
// 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 // 배포 환경에서는 쿼리 로그를 비활성화 한다.**
});

수동적으로 과제를 진행하지 말고 능동적으로, 이해하면서 프로젝트를 진행 하자!

profile
개발자를 목표로 열심히 하려고 합니다.

0개의 댓글